3

私はこれを、R私が使用していたパッケージに固有のものではなく、についての一般的な/初心者の質問として尋ねています。

私はdataframe300万行15列のを持っています。私はこれを巨大なデータフレームとは考えていませんが、おそらく私は間違っています。

私は次のスクリプトを実行していて、それは2時間以上実行されています-これをスピードアップするために私ができることがあるに違いないと思います。

コード:

ddply(orders, .(ClientID), NumOrders=len(OrderID))

これは過度に集中的なスクリプトではありません。また、そうではないと思います。

データベースでは、テーブルにインデックスを追加して、結合速度を上げることができます。R関数/パッケージをより高速に実行するためにインポートで実行する必要がある同様のアクションはありますか?

4

3 に答える 3

3

あなたが望むかもしれないと私には見えます:

orders$NumOrders <- with( orders( ave(OrderID  , ClientID) , FUN=length) )

(len()関数が存在することを知りません。)

于 2012-06-06T01:14:58.813 に答える
2

提案されたdata.tableパッケージを使用すると、次の操作で1秒以内に作業を実行できます。

orders[,list(NumOrders=length(OrderID)),by=ClientID]
于 2012-06-06T11:39:28.210 に答える
1

あなたのコードがしているのはこれだけのようです:

orders[order(orders$ClientID), ]

それはより速いでしょう。

于 2012-06-06T01:08:28.507 に答える