大きなデータフレームのrの係数で変数の最小値と最大値を見つけるための計算上非課金アルゴリズム?

マッテオ

次のように、いくつかの値が因子に関連付けられている非常に大きなデータフレームがあります。

value      user
12         USER1
4          USER5
6          USER3
50         USER1
2          USER2
1          USER1
8          USER5
9          USER3
55         USER1
15         USER2

各ユーザーの値の最大値と最小値を知りたいです。forループを試してみました。ここでは、一時変数を作成し、ユーザーリストを調べて最大値と最小値を見つけます。ただし、データベースのサイズは非常に大きく(100Mb)、非常に長い時間(30分)かかります。これを行うためのよりスマートな方法はありますか?ありがとう。

ボーベル大佐

dfがdata.frame「ビッグ」データのオリジナルである場合は、次のdata.tableパッケージを使用することをお勧めします。

library(data.table)

dt = data.table(df)
setkey(dt, user)

dt[,list(min(value), max(value)),by=user]
    user V1 V2
1: USER1  1 55
2: USER5  4  8
3: USER3  6  9
4: USER2  2 15

編集:使用する良い例eachからplyr

> library(plyr)
> dt[,as.list(each(min,max)(value)),by=user]
    user min max
1: USER1   1  55
2: USER5   4   8
3: USER3   6   9
4: USER2   2  15

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ