我想获取表中每个因子的频率,我当前的代码是这样的:
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)
您可以使用 .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)