我有一个具有以下架构的数据表:
date, key_a, key_b, key_c, key_d, value
我想制作一个具有以下结构的列表:
[1]
date, key_a, value
[2]
date, key_b, value
[3]
date, key_c, value
我想将我的 dt
聚合到一个列表中,其中每个条目都通过单独的一个键聚合 dt
。
这是我的代码
setDT(dt)
list_of_dts[1] <-
dt[, .(value = sum(value)), .(date, key_a)]
list_of_dts[2] <-
dt[, .(value = sum(value)), .(date, key_b)]
(So on)
有没有更有效的方法来解决这个问题?
最佳答案
也许获取长格式的数据,然后总结它:
library(data.table)
setDT(dt)
dt1 <- melt(dt, id.vars = c('date', 'value'))
dt1 <- dt1[, .(value = sum(value)), .(date, variable)]
现在,如果您想要数据帧列表,可以使用 split
:
split(dt1, dt1$variable)
关于r - 有没有一种快速的方法将数据表变成数据表列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63822821/