2016-02-26 22 views

回答

3

我覺得我得到使用data.table做這個操作你想要:你有一個data.table,並且你想知道每個ID在所有這些列中的總數爲零。

在這種情況下,我們可以這樣做:不是缺少

dat[, count:=sum(.SD==0),by=ID] 

這具有返回計數0無零目前的優勢。

(有一些虛擬數據):

set.seed(1234) 
dat <- data.table(X1=sample(0:3,10,T), 
        X2=sample(0:3,10,T), 
        ID=sample(LETTERS[1:2],10,T)) 

dat[, count:=sum(unlist(.SD)==0),by=ID] 
dat[, count2:=table(as.matrix(.SD))[names(table(as.matrix(.SD)))=="0"], by = ID, .SDcols=c("X1","X2")] # to check 

dat[,table(count==count2)] 
TRUE 
    10 
+0

啊很有道理。我有時會忘記R比較容易。謝謝 – njBernstein

相關問題