假设我有一个data.table:
x <- data.table(x=runif(3), group=factor(c('a','b','a'), levels=c('a','b','c')))
我想知道每个x
{/ 1}}中有多少行:
group
问题:是否有某种方法可以强制上述x[, .N, by="group"]
# group N
# 1: a 2
# 2: b 1
考虑因素by="group"
的所有级别?
请注意,由于表格中没有group
'c'的任何行,因此我没有得到c的行。
期望的输出:
group
答案 0 :(得分:14)
如果您愿意通过在i
中枚举它们而不是通过设置by="group"
来运行因子级别,那么这将为您提供所希望的结果。
setkey(x, "group")
x[levels(group), .N, by=.EACHI]
# group N
# 1: a 2
# 2: b 1
# 3: c 0