R 如何显式命名由.N函数生成的count列?
我想按id列按数据表分组,然后计算每个id出现的次数。这可以通过以下方式完成: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) 如果我们已经命名了它,
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