以下は、時間の経過とともにバイオマスの蓄積を記録する対照と処理との間で、異なるサンプル、処理および担当者を有する例示的なデータフレームである。私は、各サンプルの平均バイオマス、処理および担当者をサブセット化するか、処理グループ別に各サンプルの(長い)リストオブジェクトを作成し、lapplyを呼び出すことによって平均バイオマスをこのようにして計算することができます。しかし、「データフレームから離れる」ことなく、これを行うためのより簡単な方法がありますか?Rデータフレームにおける異なる処理および反復カウントの平均を取る
set.seed(34)
df <- data.frame(
SAMPLE = rep(c("S0","S1","S2"), times = c(4,15,15)),
TREATMENT = c("Ctl","T1","T2","T3","Ctl","Ctl","Ctl",
"T1","T1","T1","T1","T2","T2","T2","T2",
"T3","T3","T3","T3","Ctl","Ctl","Ctl","T1",
"T1","T1","T1","T2","T2","T2","T2","T3",
"T3","T3","T3"),
REPS = c(1,1,1,1, 1,2,3,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,
1,2,3,4,1,2,3,4,1,2,3,4),
BIOMASS = round(rnorm(34, mean = 22, sd = 5), digits = 2)
)
head(df)
おかげで、 フランクリン
が存在しなければならない(Z)(バイオマスを意味します) 。例えば、基底Rから 'tapply、aggregate'、' dplyr'から 'group_by'を試みるか、' data.table'構文を使うことができます。 – Psidom