cliffgao的个人博客分享 http://blog.sciencenet.cn/u/cliffgao 兴趣:生物信息学、统计、概率

博文

R 中 如何分组求相关系数

已有 4779 次阅读 2021-3-24 21:38 |个人分类:R语言|系统分类:科研笔记


问题:使用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

上一篇:2020年数学方向的书单
下一篇:R ggplot2 给分面数据facet 添加文字
收藏 IP: 111.32.91.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-3-19 11:04

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部