data.table
大規模なデータセットに対して非常に単純なタスクを達成するために使用したいと考えています。
各 ID の val1 と val2 の平均を計算します。
詳しくは添付のフェイクデータをご確認ください。
library(data.table)
DT <- data.table(ID = paste0("ID",rep(1:5,each=2)),
level= rep(c("CTRL","CTRL","ID1","ID2","ID3"),2),
val1 = 1:10,
val2 = rnorm(10))
ここでは、ID ごとに val1 と val2 の平均を計算します。
また、各 ID にはさまざまなレベルがあることに注意してください。しかし、一意の ID ごとに、異なるレベル val1 と val2 を組み込んだ 1 つの平均が必要です。
--- ID | 平均 - -
-- ID1 | ...
-- ID2 | ...
-- ID3 | ...
次のコードを試しましたが、うまくいきません。
topagents <- DT[, mean = mean(list(val1,val2)),
by = ID]
しかし、うまくいきません。reshape2
最初melt
に でそれを行う方法を知っていますdcast
。
しかし、元のデータセットは 2,000 万行と 12 フィールドと比較的大きく、計算にかなりの時間がかかります。
したがって、data.table
またはを使用することを好みますdplyr
。