r - Use a factor column in "by" and do not drop empty factors -


suppose have data.table:

x <- data.table(x=runif(3), group=factor(c('a','b','a'), levels=c('a','b','c'))) 

i want know how many rows in x exist each group:

x[, .n, by="group"] #    group n # 1:     2 # 2:     b 1 

question: there way force above by="group" consider levels of factor group?

notice how since don't have rows of group 'c' in table, don't row c.

desired output:

x[, .n, by="group", ???] # somehow use levels in `group` #    group n # 1:     2 # 2:     b 1 # 3:     c 0 

if willing run through factor levels enumerating them in i (rather setting by="group"), hoped results.

setkey(x, "group") x[levels(group), .n, by=.eachi] #    group n # 1:     2 # 2:     b 1 # 3:     c 0 

Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -