r中的分组相关环

grouped correlation loop in r

我想计算每个组的 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是二元的。也有缺失值。

感谢大家的帮助。

一个选项使用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]))

您可以在 ?cor 中指定 use 选项以删除 "missing values"

编辑:这是给我错误的数据: http://postimg.org/image/g9rfkamod/