高建召
R 中 如何分组求相关系数
2021-3-24 21:38
阅读:4977


问题:使用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表示输出数据类型,而_表示丢弃。



arraydata.framelistdiscarded
arrayaaplyadplyalplya_ply
data.framedaplyddplydlplyd_ply
listlaplyldplyllplyl_ply


转载本文请联系原作者获取授权,同时请注明本文来自高建召科学网博客。

链接地址:https://wap.sciencenet.cn/blog-468005-1278417.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?