我问这是关于R
的一般/初学者问题,不是我所使用的软件包的具体问题。
我有一个dataframe
,有300万行和15列。我不认为这是一个巨大的数据帧,但也许我错了。
我正在运行以下脚本并且它已经运行了2个多小时 - 我想我必须要做些什么才能加快速度。
代码:
ddply(orders, .(ClientID), NumOrders=len(OrderID))
这不是一个过于密集的剧本,或者说,我认为不是。
在数据库中,您可以向表中添加索引以提高连接速度。在R
我是否应该在导入时执行类似操作以使函数/包运行得更快?
答案 0 :(得分:3)
在我看来你可能想要:
orders$NumOrders <- with( orders( ave(OrderID , ClientID) , FUN=length) )
(我不知道len()函数存在。)
答案 1 :(得分:2)
使用建议的data.table
包,以下操作应该在一秒钟内完成工作:
orders[,list(NumOrders=length(OrderID)),by=ClientID]
答案 2 :(得分:1)
您的所有代码似乎都是这样:
orders[order(orders$ClientID), ]
那会更快。