||
问题:使用R 对一个数据框如何分组求相关系数
参考:
https://www.jianshu.com/p/bfddfe29aa39
解决:
install.packages("plyr")
require(plyr)
#数据集概貌
head(mydat)
Proid RSA CN HSEup HSEdw
1 1a1xA 1.0000000 15 1 14
2 1a1xA 1.0000000 9 9 0
3 1a2yA 0.4368421 17 4 13
4 1a2yA 1.0000000 16 16 0
5 1a1xA 0.1612903 21 6 15
6 1a1xA 0.7733333 18 17 1
### 编写函数
RSA_CNHSE <- function(xx)
{
return(data.frame(RSACN = cor(xx$RSA, xx$CN),
RSAUP =cor(xx$RSA, xx$HSEup),
RSADW=cor(xx$RSA,xx$HSEdw)))
}
### 分组求相关系数
myrsa_cor<-ddply(mydat, .(Proid), RSA_CNHSE)
### 进一步
plyr包对数据进行,split, 然后apply,最后combine
plyr函数具有xyply
的形式,其中x
表示数据数据类型,y
表示输出数据类型,而_
表示丢弃。
array | data.frame | list | discarded | |
array | aaply | adply | alply | a_ply |
data.frame | daply | ddply | dlply | d_ply |
list | laply | ldply | llply | l_ply |
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-28 10:41
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社