【发布时间】:2016-11-13 01:27:21
【问题描述】:
我有一个这样的数据表
require(data.table)
dt <- data.table(a= c("a","a","b","b","b"), b= c("a","a","c","c","e"), c=c("d","d","b","b","b"))
我想从所有列中统计频率。我知道如何一一完成,但我想在一条指令中完成,因为我的数据有很多列。
结果必须是这个:
dt[,a1:=.N, by = c("a")]
dt[,a2:=.N, by = c("b")]
dt[,a3:=.N, by = c("c")]
【问题讨论】:
-
使用
for()循环。 -
@RichScriven 你能给我举个例子吗?
-
试试
nm1 <- paste0("a", seq_along(dt));for(j in seq_along(dt)){ dt[, nm1[j] := .N, by = c(names(dt)[j])] }
标签: r data.table multiple-columns frequency