【发布时间】:2013-09-06 00:06:08
【问题描述】:
我创建了一个特征向量(data.frame),它有一个 id、feat1、feat2、feat3、boolean,但是在这个数据框中有重复的 id,这是有目的的。我想要做的是在迭代这个数据框时为每个 id 构建新的数据框。
为简单起见,假设我有以下两列。
X1 X2 X3
1 000000001 -1.4061361 1
2 000000001 -0.1973846 1
3 000000002 -0.4385071 1
4 000000001 -0.6593677 0
5 000000001 -1.2592415 0
6 000000001 -0.5463655 1
7 000000002 0.4231117 0
8 000000002 -0.1640883 1
9 000000002 0.7157506 0
10 000000002 2.3234110 1
我想基于 X1 构建不同的数据框基本上我想将所有相同的 X1 放入自己的数据框。我使用多个 for 循环编写,但由于这是一个大型数据集,因此需要很长时间。最好的方法是什么?
【问题讨论】:
-
请注意,创建所有这些副本至少会使您的内存使用量翻倍。因此,如果您打算对每个块进行一些分析并仅保存一小部分摘要结果,请查看函数
by()。 -
@Ferdinand.kraft 是的,我计划进行分析,事实上我这样做的原因是我想在每个上运行随机森林,所以我实际上担心内存消耗。您如何建议我在这种情况下使用 by?
-
@find-missing-semicolon 抱歉,我不使用随机森林...但是
by()接受任何适用于数据帧块并返回汇总数据的函数。