我有一个数据框由行绑定许多数据帧,每个数据帧用唯一键标识 . 我希望计算大数据帧的每个子集(使用唯一密钥)中的列的相关系数 . 例如,使用mtcars数据我可能想要为列 cyl
中的每个唯一值计算列 hp
和 wt
之间的相关性 . 我可以循环完成
data("mtcars")
for(i in c(4,6,8)){
temp = subset(mtcars,mtcars$cyl==i)
cor(temp$hp,temp$wt)
}
我认为聚合会更好,但这段代码不起作用:
data("mtcars")
aggregate(mtcars,by=mycars$cyl,cor)
2 回答
你可以用
这将
mtcars
中的数据分割为cyl
,适用于每个子集x
函数cor(x$hp,x$wt)
,然后聚合data.frame中每个子集的结果 .我强烈推荐
plyr
包 . 这是我在R中使用最多的包之一 .编辑:根据请求,这里是
dplyr
版本 . 我不得不说我不是一个大用户,但代码应该没问题 .在
base
R中,split
和lapply
或sapply
的作业