1
これはthis questionのフォローアップです。この問題で.SD
を使用する方法を考えるのはむしろ(この場合はY1とY2を別々に実行するのではなく、各変数ごとに計算を行うのではなく)どんな助力も高く評価されます。おかげでdata.table:次のコードの.SD
set.seed(12345)
A <- rep(x=paste0("A", 1:2), each=6)
B <- rep(x=paste0("B", 1:3), each=2, times=2)
Rep <- rep(x=1:2, times=3)
Y1 <- rnorm(n=12, mean = 50, sd = 5)
Y2 <- rnorm(n=12, mean = 50, sd = 10)
library(data.table)
dt <- data.table(A, B, Rep, Y1, Y2)
dt[, j = Eff1 := mean(Y1), .(A, B)][, j = Eff1 := Eff1 - mean(Y1), .(A)][, j = Eff1 := Eff1 - mean(Y1), .(B)][, j = Eff1 := Eff1 + mean(Y1)]
dt[, j = Eff2 := mean(Y2), .(A, B)][, j = Eff2 := Eff2 - mean(Y2), .(A)][, j = Eff2 := Eff2 - mean(Y2), .(B)][, j = Eff2 := Eff2 + mean(Y2)]
dt[, j = .(Eff1 = mean(Eff1), Eff2 = mean(Eff2)), by = .(A, B)]
私は質問を理解していません。どこで '.SD'を使いたいのですか?そして明示的な 'j =' ''をタイプしないことを強くお勧めします。 – eddi
問題とその結果を自然言語で説明してください。 –
あなたのコメントと提案に感謝します。より明確にするために私の編集を見て、これらの計算を実行するためのより効率的なアプローチを提案してください。 – MYaseen208