randomForest :: combine()和列表中的对象

时间:2014-08-28 20:02:13

标签: r list random-forest

为了在非常大的数据集上运行Random Forest模型,我将数据划分为块并在每个块上运行randomForest :: randomForest()。生成的randomForest对象包含在列表中。我现在需要使用randomForest :: combine()来组合每个数据块的树。

我的问题是,如何在列表中的所有对象上使用combine()等函数?在我的理解中,sapply()等将一个函数应用于列表中的每个对象 - 而不是我想要做的事情。我需要在列表中的所有randomForest对象上使用combine();或者如果不能直接实现,我需要单独拉出每个对象并将其发送到combine()。另一个问题是我有不同的数据集,其中包含不同数量的数据块;我希望代码在块数方面具有灵活性。

我的清单(rf.final)包含对象" 1"通过" 5"每个randomForest对象都是:

> class(rf.final)
[1] "list"
> names(rf.final)
[1] "1" "2" "3" "4" "5"
> class(rf.final[[1]])
[1] "randomForest.formula" "randomForest"  

有5个对象,因为我有5个这个特定数据集的数据块。

我还没有包含str(rf.final),因为输出很大[即使仅适用于str(rf.final[[1]])]但我可以根据需要。

1 个答案:

答案 0 :(得分:1)

我终于找到了解决方案!使用基础包中的do.call()函数。

rf.final2 <- do.call("combine", rf.final)