【发布时间】:2014-12-04 15:32:35
【问题描述】:
我有一个非常简单的数据框:
X Y
---
A 1
A 2
B 3
C 1
C 3
我的最终结果应该是这样的列表:
$`A`
[1] 1 2
$`B`
[1] 3
$`C`
[1] 1 3
对于这个操作,我在 R 中使用 split() 函数:
k <- split(Y, X)
这工作得很好。但是,如果我想将此代码应用于包含 2200 万行的数据帧,其中包括 1000 万组 X 和 387000 个 Y 值,它会变得非常耗时。 我尝试使用 RRO 8.0 开放版本来支持 MKL。但是,仍然只使用一个内核。 CPU 有 64 GB 的 RAM,所以这应该不是问题。
有什么更聪明的计算方法的想法吗?
【问题讨论】:
-
这些操作难道不能用
data.table或dplyr来进行吗 -
我尝试使用
dplyr,但无法找到一种方法。在任何情况下dplyr不会返回数据框吗?我认为列表结构更适合后期处理。 -
您可以在
data.table和dplyr中将列作为列表返回(使用do) -
我很乐意使用
dplyr。在一次尝试中,我使用了group_by和summarise函数,但找不到最好的方法。 -
你打算用这个列表做什么?也许你可以避免一起创建它
标签: r split statistics rro