如何显式命名 .N 函数生成的计数列?

Joe*_*Joe 3 group-by r data.table

我想按 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
Run Code Online (Sandbox Code Playgroud)

这很好,但我希望 N 列有一个不同的名称(例如count)。帮助里说:

.N 是一个整数,长度为 1,包含组中的行数。当事先不知道列名称时,这可能很有用,并且通常为了方便起见。当按 i 分组时,.N 是 x 中匹配的行数,对于 i 的每一行,无论 nomatch 是 NA 还是 0。它在结果中重命名为 N(无点)(否则称为“的列” .N" 可能与 .N 变量冲突,请参阅常见问题解答 4.6 了解更多详细信息和示例),除非明确命名;....

创建数据表时如何“显式命名”N列dt_by_id?(我知道之后如何重命名它。)我尝试过

dt_by_id <- dt[, count = .N, by = id]
Run Code Online (Sandbox Code Playgroud)

但这导致

Error in `[.data.table`(dt, , count = .N, by = id) : 
  unused argument (count = .N)
Run Code Online (Sandbox Code Playgroud)

Ant*_*osK 5

如果您想给出自己的名字,则必须列出计算的输出:

dt[, .(count=.N), by = id]

dt[, list(count=.N), by = id]如果您愿意,这与 相同;.是这里的别名list