【发布时间】:2021-08-27 06:00:29
【问题描述】:
我有如下数据表:
library(data.table)
dat = data.table(j = c(3,8,9,11,10,28, 5), gr = c(9,9,9,9,10,10, 10), day = c(1,1,2,2,1,1,2))
> dat
j gr day
1: 3 9 1
2: 8 9 1
3: 9 9 2
4: 11 9 2
5: 10 10 1
6: 28 10 1
7: 5 10 2
我希望为每个组(gr 列)和每一天创建一个 向量,其中包含 j 中的所有可用值。
我尝试了以下方法无济于事:
dat[, j[1:.N], by = .(gr, day )]
dat[, list(j[1:.N]), by = .(gr, day )]
这部分可行,但我需要做一些进一步的操作才能获得所需的结果:
dat[, list(list(Reduce(c, j, accumulate = T))), by = .(gr, day )]
我的理想结果如下:
> res_dat
gr day all_values
1: 9 1 3,8
2: 9 2 9,11
3: 10 1 10,28
4: 10 2 5
我不希望这是一个字符串,我希望它是一个向量列表,所以这个答案data table string concatenation of SD columns for by group values 不适用。
【问题讨论】:
标签: r data.table