r中的分组相关循环

时间:2015-02-23 05:05:22

标签: r loops correlation

我想计算Col1与每个组的所有其他列之间的相关性。我的输入数据集如下所示:

Group1 Col1 Col2 Col3 Col4
A       3    1    0    1 
A       8    0    1    0
B       4    1    1    1
B       2    1    0    1

我想我的输出数据集看起来像这样(数字是假的,但代表相关性)

Group Col1CorCol2 Col1CorCol3 Col1CorCal4
A        .7          .3           1
B         0          .4          .6

顺便说一句,Col1是连续的,Col2,Col3和Col4是二进制的。还有缺失的值。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

使用data.table

的选项
library(data.table)
res <- setDT(df1)[, lapply(.SD[,-1, with=FALSE],
                    function(x) cor(x,Col1)) , by=Group1]
setnames(res,2:4, paste0('Col1Cor', names(res)[-1]))

您可以在use中指定?cor选项,以删除“缺失值”

编辑:这是数据看起来像是给我错误: http://postimg.org/image/g9rfkamod/