1
実験の結果を含むdata.table
のRには巨大なものがあります。それぞれの結果に対して、実行IDと構成パラメータは2つの他の行に含まれています。 conf
パラメータは、実行ごとに一定です。この簡単な例を参照してください。groupBy in data.table:最初の値を使用
> x=data.table(runId=rep(c(1,2,3,4,5,6),each=5),conf=rep(c(10,10,500,500,1000,1000), each=5), value=runif(30,1, 1000))
> x
runId conf value
1 10 102.17366
1 10 739.31317
1 10 361.83867
1 10 915.05966
1 10 435.11605
2 10 254.13930
2 10 482.93782
2 10 598.34327
2 10 401.45823
2 10 480.17624
3 500 831.03700
3 500 378.53013
3 500 371.75072
3 500 61.27925
3 500 425.50863
4 500 557.64415
4 500 731.07127
4 500 836.31104
4 500 138.61641
4 500 106.12334
5 1000 925.24886
5 1000 840.06707
5 1000 680.79559
5 1000 402.77619
5 1000 507.21966
6 1000 111.93297
6 1000 100.88960
6 1000 149.17332
6 1000 444.28845
6 1000 654.86640
私は、私が使用してこれを行うことができ、それぞれの実行のための値の平均を計算したい:
> x[,list(mean=mean(value)),by=runId]
runId mean
[1,] 1 634.1549
[2,] 2 275.1270
[3,] 3 328.4098
[4,] 4 584.1364
[5,] 5 616.1647
[6,] 6 411.2354
私もそれぞれにconf
値を追加したいです集約内の行私は実際にconf
列のmean
機能を使ってこの結果を得ることができます。しかし:これは、confの値は、各RUNIDのために全く変化しないよう無用です:
> x[,list(conf=mean(conf),mean=mean(value)),by=runId]
runId conf mean
[1,] 1 10 634.1549
[2,] 2 10 275.1270
[3,] 3 500 328.4098
[4,] 4 500 584.1364
[5,] 5 1000 616.1647
[6,] 6 1000 411.23
は、ここでは、このハック平均機能の別の代替はありますか?私が集計に使うことができる「最初の」関数(または「最後」)は、この場合は気にしません。
あなた自身の答えを受け入れることを忘れないでください。 – ROLO
私は2日でこれを行うことができます – theomega