Converting Indicator Columns to Counts Table?
在R中,我试图将指标变量的数据帧转换为计数表。
我的数据看起来像这样,其中A,B,C和D是不同情况的指示变量,而ID1,ID2,ID3和ID4是患者ID。
1 2 3 4 5 6 7 8 9 | test <- data.frame(rbind(c(0,0,0,1),c(1,0,0,1),c(1,0,0,0),c(1,1,0,0))) colnames(test) <- c("A","B","C","D") rownames(test) <- c("ID1","ID2","ID3","ID4"); test A B C D ID1 0 0 0 1 ID2 1 0 0 1 ID3 1 0 0 0 ID4 1 1 0 0 |
我想得到一个表,其中汇总了A,B,C和D的计数以及它们如何重叠:
1 2 3 4 5 | A B C D A 3 1 0 1 B 1 1 0 0 C 0 0 0 0 D 1 0 0 2 |
由于A,B,C和D是不同的变量,并且给定的ID可以包含多个条目,因此我不确定如何实现此目的。感谢您的帮助!
矩阵乘法是否可以解决您的问题?
1 2 3 4 5 6 | test <- data.frame(rbind(c(0,0,0,1),c(1,0,0,1),c(1,0,0,0),c(1,1,0,0))) colnames(test) <- c("A","B","C","D") rownames(test) <- c("ID1","ID2","ID3","ID4"); test test1 <- as.matrix(test) t(test1) %*% test1 |