0
這是我想通了:有沒有更好的方法來計算列數等於基於ID的特定值?
library(data.table)
blah.dt[ , count:= table(as.matrix(.SD))[names(table(as.matrix(.SD)))=="0"] , by = ID]
只是不知道是否有一個更好更快的方式,因爲我敢肯定有
這是我想通了:有沒有更好的方法來計算列數等於基於ID的特定值?
library(data.table)
blah.dt[ , count:= table(as.matrix(.SD))[names(table(as.matrix(.SD)))=="0"] , by = ID]
只是不知道是否有一個更好更快的方式,因爲我敢肯定有
我覺得我得到使用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
啊很有道理。我有時會忘記R比較容易。謝謝 – njBernstein
你能否詳細說明你的輸入和輸出的要求? – Heroka