我想得到表格中每个因素的频率,我目前的代码是:
frequencies <- dt[,c("Variable"), with=FALSE][
,count := length(Variable), by=Variable][
,list(total = sum(count)), by=Variable]
然而,这似乎是非常低效的,所以我想知道这可以写得更紧凑吗?
由于
更新:
Variable
1 Yes
2 No
3 Yes
4 No
5 Yes
它应该返回:
No 2
Yes 3
答案 0 :(得分:4)
您可以使用.N
dt[, .N, by = Variable]
# Variable N
# 1: Yes 3
# 2: No 2
或只是table
dt[, table(Variable)]
# Variable
# No Yes
# 2 3
来自table
dt[, as.data.table(table(Variable))]
# Variable N
# 1: No 2
# 2: Yes 3
答案 1 :(得分:2)
因子的summary
容易产生不同等级的频率。所以:
myvar = factor(c('Yes','No','Yes','No','Yes')) ; t = summary(myvar)