gpt4 book ai didi

r - cast 函数非常耗内存,如何处理?

转载 作者:行者123 更新时间:2023-12-01 10:35:37 26 4
gpt4 key购买 nike

我有一张 table 看起来像:

date    item_id    store_id   sale_num
1/1/15 33 1 10
1/1/15 33 2 12
1/1/15 33 3 15
1/1/15 44 1 54
1/1/15 44 3 66
1/2/15 33 1 14
....

我想转表,把store_id放到多个列中,value就是sale_num。表格应该是这样的:

date    item_id   store1   store2   store3  
1/1/15 33 10 12 15
1/1/15 44 54 NA 66
1/2/15 33 14 NA NA
......

当我在小范围内使用 cast 函数执行此操作时,原始表中有 1000 行,没有问题。

但是,原始表有 38,000,000 行,在 R 中占用 1.5 GB 内存。当我使用 cast 函数时,该函数会占用大约 34 GB 的内存,并且会无休止地运行。

它的问题是什么?有什么替代方法吗?

最佳答案

我们可以使用data.table 中的dcast。它应该比 reshape 中的 cast 更有效。我们将 'data.frame' 转换为 'data.table' (setDT(df1)),然后使用 dcast

library(data.table)
dcast(setDT(df1), date+item_id~ paste0("store",
store_id), value.var="sale_num")
# date item_id store1 store2 store3
#1: 1/1/15 33 10 12 15
#2: 1/1/15 44 54 NA 66
#3: 1/2/15 33 14 NA NA

关于r - cast 函数非常耗内存,如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36075880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com