gpt4 book ai didi

r - 通过合并耗尽内存

转载 作者:行者123 更新时间:2023-12-03 22:20:26 25 4
gpt4 key购买 nike

我有一个paneldata看起来像:

(仅大幅削减了我的问题)

Persno 122 122 122 333 333 333 333 333 444 444 
Income 1500 1500 2000 2000 2100 2500 2500 1500 2000 2200
year 1990 1991 1992 1990 1991 1992 1993 1994 1992 1993

现在,我想在每一年(PErsno)中给出年初开始的工作经验。我使用 ddply
hilf3<-ddply(data, .(Persn0), summarize, Bgwork = 1:(max(year) - min(year)))

要产生如下输出:
Workexperience: 1 2 3 1 2 3 4 5 1 2

现在,我想将 ddply结果合并到我的原始面板数据中:
data<-(merge(data,hilf3,by.x="Persno",by.y= "Persno"))

面板数据集非常大。该代码由于内存大小错误而停止。

错误信息:

1:在make.unique(as.character(rows))中:

已达到4000Mb的总分配:请参阅help(memory.size)

我应该怎么办?

最佳答案

重新阅读您的问题,我认为您实际上根本不想在这里使用merge。只需对原始数据帧进行排序,然后从hilf3 rbind Bgwork。而且,您的ddply -call可能会导致1:0序列,这很可能不是您想要的。尝试

data = data[order(data$Persno, data$year),]
hilf3 = ddply(data, .(Persno), summarize, Bgwork=(year - min(year) + 1))
stopifnot(nrow(data) == nrow(hilf3))
stopifnot(all(data$Persno == hilf3$Persno))
data$Bgwork = hilf3$Bgwork

关于r - 通过合并耗尽内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7282087/

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