【发布时间】:2019-02-06 13:57:09
【问题描述】:
我想按 id 列对数据表进行分组,然后计算每个 id 出现的次数。这可以按如下方式完成:
dt <- data.table(id = c(1, 1, 2))
dt_by_id <- dt[, .N, by = id]
dt_by_id
id N
1: 1 2
2: 2 1
这很好,但我希望 N 列具有不同的名称(例如 count)。在帮助中它说:
.N 是一个整数,长度为 1,包含组中的行数。当列名未知时,这可能很有用 提前和为了方便一般。当按 i 分组时,.N 是 x 中匹配的行数,对于 i 的每一行,无论 nomatch 是 NA 还是 0。在结果中重命名为 N(无点) (否则名为“.N”的列可能与 .N 变量冲突, 有关更多详细信息和示例,请参阅常见问题解答 4.6),除非它是明确的 命名; ... .
创建dt_by_id数据表时如何“显式命名”N列? (我知道以后如何重命名它。)我试过了
dt_by_id <- dt[, count = .N, by = id]
但这导致了
Error in `[.data.table`(dt, , count = .N, by = id) :
unused argument (count = .N)
【问题讨论】:
-
如果你想给出你自己的名字,你必须列出你的计算输出:
dt[, .(count=.N), by = id]。如果您愿意,这类似于dt[, list(count=.N), by = id]。
标签: r group-by data.table