【发布时间】:2020-09-10 04:27:26
【问题描述】:
我有一个具有此架构的数据表:
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)
有没有更有效的方法来解决这个问题?
【问题讨论】:
-
Cauder,您当然关心大型表的性能。
data.table提供的速度和效率在数据驻留在一个地方时很有用;然而,当分割一个框架时,它会将单个位置的对象分割成多个对象,这通常涉及数据的复制(这是data.table仅作为最后手段所做的事情)。当您在所有列出的表中都有"date"和"value"时,您的大部分数据都会被按定义复制。
标签: r datatable data.table