0

重複の可能性:
IDで列を集約する変数を作成するためのより高速な方法

つまり、CSVファイルから次のデータが読み込まれているということです。

id      value2  value3
1.000   0.010   14        
1.000   0.019   15        
0.995   0.024   13        
0.995   0.031   20        
0.990   0.012   13        
.....

のグループの平均/中央値value2などの値を計算したい。その後、計画は結果をまたはのいずれかで並べ替えることができるようにすることでした。value3idvalue2value3

そのようなタスクを実行する方法はありますか?

前もって感謝します。

4

3 に答える 3

6

日曜日はdata.tableです!これはビッグデータに適した拡張性を備えており、高速かつ効率的です。

> library(data.table)
> DT <- as.data.table(df)
> DT[, list(val2=mean(value2), val3=mean(value3)), by=id]
      id   val2 val3
1: 1.000 0.0145 14.5
2: 0.995 0.0275 16.5
3: 0.990 0.0120 13.0
于 2012-10-14T20:41:51.043 に答える
3
library(plyr)
result <- ddply(df, .(id), function(x) { 
    data.frame(mv2 = mean(x$value2), mv3 = mean(x$value3))
    })

# order by mean value2
arrange(result, mv2)
# and for value 3
arrange(result, mv3)
于 2012-10-14T20:38:41.580 に答える
0

と呼ばれるデータフレームにデータがあると仮定するとdf、次のことができます。

sapply(split(df[-1], df$id), sapply, mean)
于 2012-10-14T20:38:21.260 に答える