我有一些大数据集,我希望获得与该同一数据集的一个特定变量的相关性。
例如,变量A
与data.table中其他变量的相关性。
示例:
library(data.table)
df <- fread(
"A B D E iso year
1 A 1 NA ECU 2009
2 B 2 0 ECU 2009
3 D 3 0 BRA 2011
4 E 4 0 BRA 2011
5 D 7 NA ECU 2008
6 E 1 0 ECU 2008
7 A 3 2 BRA 2012
8 A 4 NA BRA 2012",
header = TRUE
)
我使用以下方法获得数字列:
numcols <- which(sapply(df, is.numeric))
数字变量的下一步应该类似于:
dfcor <- df[, x := .(list(cor(.SD, use= "pairwise.complete.obs", method= "pearson"))), by = iso, .SDcols = numcols]
但是,这将创建具有相关向量的列x
,而不是用于相关的单独列:
c(1, 0.942908070944406, 0.365636212063565, NA, -0.970142500145332, 0.942908070944406, 1, 0.0509647191437626, NA, -0.845154254728517, 0.365636212063565, 0.0509647191437626, 1, NA, -0.502518907629606, NA, NA, NA, NA, NA, -0.970142500145332, -0.845154254728517, -0.502518907629606, NA, 1)
此外,此答案仅在适用的情况下为我提供了皮尔逊相关性。但是,我也想使用spearman等级相关性。有什么建议吗?