我有以下形式的数据:
df <- data.frame(group = c(rep(1,5),rep(2,5),rep(3,5),rep(4,5),rep(5,5)),
thing = c(rep(c('a','b','c','d','e'),5)),
score = c(1,1,0,0,1,1,1,0,1,0,1,1,1,0,0,0,1,1,0,1,0,1,0,1,0))
它报告了一堆“组”的每个“事物”的“分数”。
我想创建相关矩阵,该矩阵根据各组分数的相关性显示所有“事物”的成对分数相关性:
thing_a thing_b thing_c thing_d thing_e
thing_a 1 . . . .
thing_b corr 1 . . .
thing_c corr corr 1 . .
thing_d corr corr corr 1 .
thing_e corr corr corr corr 1
例如,事物“a”和事物“b”之间相关性的基础数据将是:
group thing_a_score thing_b_score
1 1 1
2 1 1
3 1 1
4 0 1
5 0 1
实际上,唯一组的数量约为 1,000,事物的数量约为 10,000,因此我需要一种比蛮力 for 循环更有效的方法。
我不需要得到的相关矩阵在单个矩阵中,甚至不需要在矩阵本身中(即,它可以是一组具有三列“ thing_1 thing_2 corr
”的数据集)。