gpt4 book ai didi

list - 使用不同维度的数据框列表列表

转载 作者:行者123 更新时间:2023-12-01 11:54:38 25 4
gpt4 key购买 nike

我正在处理数据框列表的列表,如下所示:

results <- list()
for( i in 1:4 ) {
runData <- data.frame(id=i, t=1:10, value=runif(10))
runResult <- data.frame( id=i, avgValue=mean(runData$value))
results <- c(results,list(list(runResult,runData)))
}

数据看起来像这样的原因本质上是我的实际数据是如何通过 clusterApply 使用 R 2.14.0 中的新并行包运行模拟生成的,其中每个模拟返回一些汇总结果的列表(runResult ) 和原始数据 (runData)

我想将二级列表的第一个数据框组合在一起(它们是相同的结构),同样将二级列表的第二个数据框组合在一起。这question似乎是答案,但是所有数据帧都具有相同的结构。

到目前为止,我发现的最好的方法是使用 unlist 使其成为数据帧列表,其中奇数索引和偶数索引代表需要合并的数据帧:

results <- unlist(results,recursive=FALSE)
allRunResults <- do.call("rbind", results[seq(1,length(results),2)])
allRunData <- do.call("rbind", results[seq(2,length(results),2)])

我确信有更好的方法可以做到这一点,只是我还没有看到。谁能提供一个?

最佳答案

无耻地从 Ben Bolker 对 this question 的出色回答中窃取了一个结构...

Reduce(function(x,y) mapply("rbind", x,y), results)

[[1]]
id avgValue
1 1 0.3443166
2 2 0.6056410
3 3 0.6765076
4 4 0.4942554

[[2]]
id t value
1 1 1 0.11891086
2 1 2 0.17757710
3 1 3 0.25789284
4 1 4 0.26766182
5 1 5 0.83790204
6 1 6 0.99916116
7 1 7 0.40794841
8 1 8 0.19490817
9 1 9 0.16238479
10 1 10 0.01881849
11 2 1 0.62178443
12 2 2 0.49214165
........
........
........

关于list - 使用不同维度的数据框列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8420056/

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