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)
如果您想给出自己的名字,则必须列出计算的输出:
dt[, .(count=.N), by = id]
dt[, list(count=.N), by = id]如果您愿意,这与 相同;.是这里的别名list。