【发布时间】:2012-06-06 00:26:54
【问题描述】:
我是作为关于 R 的一般/初学者问题提出的,而不是针对我使用的包。
我有一个dataframe,有 300 万行和 15 列。我不认为这是一个巨大的数据框,但也许我错了。
我正在运行以下脚本,它已经运行了 2 个多小时 - 我想我必须采取一些措施来加快速度。
代码:
ddply(orders, .(ClientID), NumOrders=len(OrderID))
这不是一个过于密集的脚本,或者我不认为它是。
在数据库中,您可以为表添加索引以提高连接速度。 R 中是否有类似的操作我应该在导入时执行以使函数/包运行得更快?
【问题讨论】:
-
查看data.table 包。
-
@JoshuaUlrich data.table 而不是数据框?它们真的可以互换吗?谢谢
-
也进来推荐
data.table。此操作将明显更快,并且您可以在将data.frame转换为data.table后运行相同的代码。orders <- data.table(orders)。就这么简单。 -
只是解释一下,plyr 因其非常甜美的语法糖而非常受欢迎,但对于大型数据集来说速度很慢,特别是当你的分裂变量很大。花一些时间学习data.table;语法不是很好(恕我直言),但它通常会快很多数量级。
-
听起来
table(orders$ClientID)可能也会得到你想要的。
标签: r plyr data.table