r - 有没有一种快速的方法将数据表变成数据表列表?

标签 r datatable data.table

我有一个具有以下架构的数据表:

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/

相关文章:

r - 向ggmosaic添加计数,这可以更简单吗?

R:按因子 dplyr 计算矩阵汇总统计量

C# 从 .DBF 文件读取到数据表

php - where 和 or_where codeigniter ajax 数据表搜索不适用于(2 where)

c# - 如何在数据表中选择不同的行并将其存储到数组中

r - 统一使用字符串中的单双位数

r - 组合 R 中数据帧的因子水平

database - 使用 R 将 lm 模型的结果保存到数据库

R:使用3D数组(纬度,经度和时间)随时间推移计算​​函数的最佳方法是哪种?

r - 删除第二个数字子文件夹之后的所有内容