1

在 R 中,我试图将指标变量的数据框转换为计数表。

我的数据如下所示,其中 A、B、C 和 D 是不同条件的指示变量,ID1、ID2、ID3 和 ID4 是患者 ID。

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 的计数以及它们如何重叠:

  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 可以有多个条目,我不确定如何实现这一点。谢谢你的帮助!

4

1 回答 1

5

矩阵乘法能解决你的问题吗?

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
于 2017-05-28T22:11:13.163 回答