数据转换再一次暗示着我。我已经尝试过聚合,xtab,apply函数,gmodels :: CrossTable各种各样但似乎没什么用。
我有一个包含四列的表,例如A:D,每个都是一个数字二项式变量(0,1)。
例如:
x <- data.frame(A = c(0, 1, 1, 0, 1),
B = c(1, 1, 0, 1, 0),
C = c(0, 1, 1, 0, 1),
D = c(1, 0, 1, 0, 1))
我想要一个输出,其中行和列都是变量(A:D),值是交叉点的总和。
例如:
output <- data.frame(A = c(3, 1, 3, 2),
B = c(1, 3, 1, 1),
C = c(3, 1, 3, 2),
D = c(2, 1, 2, 3))
rownames(output) <- c("A", "B", "C", "D")
例如,如果在A列中有3个观测值,那么输出中的AA的交点将是3.如果在变量B中也有1个A观测值,那么输出表中AB的交点将显示为1是路口BA。
希望这是有道理的。它真的让我不知所措。
答案 0 :(得分:1)
你可以从矩阵代数中得到这个。
M = as.matrix(x)
t(M) %*% M
A B C D
A 3 1 3 2
B 1 3 1 1
C 3 1 3 2
D 2 1 2 3