我想计算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是二进制的。还有缺失的值。
感谢您的帮助。
答案 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/