2017-05-28 53 views
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可以有多個條目,我不知道如何做到這一點。謝謝你的幫助!

回答

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 
+0

哦,我的天哪,這是完美的!非常感謝你 - 我永遠不會想出這個! – statgirl259