我无法将我的列表从lapply转换为数据框。我的最终输出xx接近我正在寻找的,但不完全正确。现在它对10个变量进行了2次观察。每个观察结果都是280的列表,但我希望我的最终数据框能够对10个变量进行560次观察,因此只需将列表展开并相互堆叠。我感谢任何帮助。
cid_station=data.frame(cid=1:280,station=sample(1:10,size=280,replace=T))
cid=unique(cid_station$cid)
july = rbind(cid_station[rep(1:280,450),])
july$resid=rnorm(n=nrow(july))
w1=data.frame(station=sample(1:10,size=2400,replace=T),
kwhhat=rnorm(n=2400,mean=50,sd=10), year=1)
w2=data.frame(station=sample(1:10,size=2400,replace=T),
kwhhat=rnorm(n=2400,mean=500,sd=10), year=2)
weather= rbind(w1,w2)
iteration=(1:10)
year=(1:2)
x=lapply(iteration,function(z){
i=lapply(year,function(yr){
subset_y=weather[weather$year==yr,]
peaks=lapply(cid,function(id){
subset_r=july[july$cid==id,"resid"]
subset_s=unique(july[july$cid==id,"station"])
subset_w=subset_y[subset_y$station==subset_s,]
subset_w$resid=sample(subset_r,size=nrow(subset_w),replace=T)
subset_w$kw=subset_w$kwhhat+subset_w$resid
peak=max(subset_w$kw)
})
})
})
xx=as.data.frame(do.call(cbind, x))
答案 0 :(得分:0)
我觉得您的代码中必须进行一些优化,但我对您尝试做的事情不够清楚。也就是说 - map_dfc
包中的purrr
函数可以为您提供所需的功能。
xx <- map_dfc(x, unlist)