R 如何显式命名由.N函数生成的count列?

R 如何显式命名由.N函数生成的count列?,r,group-by,data.table,R,Group By,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 但这导致了 Error in `[.data.table`(dt, , count = .N, by = id) : unused argument (count = .N) 如果我们已经命名了它,

我想按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
但这导致了

Error in `[.data.table`(dt, , count = .N, by = id) : 
  unused argument (count = .N)

如果我们已经命名了它,那么使用
setnames

setnames(dt_by_id, "N", 'count')

或者使用
重命名

library(dplyr)
dt_by_id %>%
   rename(count = N)
#  id count
#1:  1     2
#2:  2     1

如果您想给出自己的姓名,必须列出计算结果:

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


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

如果你想给出自己的名字,你必须列出你的计算结果:
dt[,(count=.N),by=id]
。这类似于
dt[,list(count=.N),by=id]
,如果您愿意的话。可能值得注意的是:对于.GRP和.I列也可以这样做。
library(dplyr)
dt_by_id %>%
   rename(count = N)
#  id count
#1:  1     2
#2:  2     1