【发布时间】:2020-01-03 09:44:16
【问题描述】:
默认情况下,对 data.table 的 group by 操作会返回一个带有自动命名列 V1 的新 data.table:
dt <- data.table(a = sample(1:100, 100), b = sample(1:100, 100), id = rep(1:10,10))
dt[, mean(a), by = id]
# id V1
# 1: 1 48.2
# 2: 2 47.9
# 3: 3 46.8
# 4: 4 54.7
# 5: 5 63.7
# 6: 6 50.6
# 7: 7 43.3
# 8: 8 52.7
# 9: 9 45.4
# 10: 10 51.7
按照this post我可以设置列的名称,结果如下
dt[, list(mean = mean(a)), by = id]
是否可以为列名设置一个变量?例如,我不想明确设置mean,而是想做类似的事情
column_name <- "mean"
dt[, list(column_name = mean(a)), by = id] # resulting column name is column_name (and not mean)
【问题讨论】:
标签: r data.table