使用data.table的R中每个因子的频率

Sno*_*ake 2 r data.table

我想获取表中每个因子的频率,我当前的代码是这样的:

frequencies <- dt[,c("Variable"), with=FALSE][
                  ,count := length(Variable), by=Variable][
                  ,list(total = sum(count)), by=Variable]
Run Code Online (Sandbox Code Playgroud)

但是,这似乎效率很低,所以我想知道这可以写得更紧凑吗?

谢谢

更新:

   Variable
1  Yes
2  No
3  Yes
4  No
5  Yes
Run Code Online (Sandbox Code Playgroud)

它应该返回:

No  2
Yes 3
Run Code Online (Sandbox Code Playgroud)

Dav*_*urg 5

您可以使用 .N

dt[, .N, by = Variable]
#    Variable N
# 1:      Yes 3
# 2:       No 2
Run Code Online (Sandbox Code Playgroud)

要不就 table

dt[, table(Variable)]
# Variable
#  No Yes 
#   2   3 
Run Code Online (Sandbox Code Playgroud)

或者更方便的格式 table

dt[, as.data.table(table(Variable))]
#    Variable N
# 1:       No 2
# 2:      Yes 3
Run Code Online (Sandbox Code Playgroud)