2 つの要因でグループ化された一連の箱ひげ図をRで作成しようとしています。なんとかプロットを作成できましたが、ボックスを正しい方向に並べることができません。
私が使用しているデータ ファームは次のようになります。
Nitrogen Species Treatment
2 G L
3 R M
4 G H
4 B L
2 B M
1 G H
私は試した:
boxplot(mydata$Nitrogen~mydata$Species*mydata$Treatment)
これにより、ボックスがアルファベット順に並べられました (最初の 3 つは「高」処理であり、その後、これら 3 つの中で種名のアルファベット順に並べられました)。
箱ひげ図を低>中>高の順に並べてから、種のG>R>Bの各グループ内に配置します。
だから私は数式で係数を使用してみました:
f = ordered(interaction(mydata$Treatment, mydata$Species),
levels = c("L.G","L.R","L.B","M.G","M.R","M.B","H.G","H.R","H.B")
それから:
boxplot(mydata$Nitrogen~f)
ただし、ボックスはまだ同じ順序で靴を履いています。ラベルは異なりますが、ボックスは移動していません。
各データセットを引き出して、それらをすべてまとめて個別にプロットしました。
lg = mydata[mydata$Treatment="L" & mydata$Species="G", "Nitrogen"]
mg = mydata[mydata$Treatment="M" & mydata$Species="G", "Nitrogen"]
hg = mydata[mydata$Treatment="H" & mydata$Species="G", "Nitrogen"]
etc ..
boxplot(lg, lr, lb, mg, mr, mb, hg, hr, hb)
これは私が望むものを与えますが、よりエレガントな方法でこれを行うことを好むので、より大きなデータセットのためにそれぞれを個別に引き出す必要はありません.
読み込み可能なデータ:
mydata <-
structure(list(Nitrogen = c(2L, 3L, 4L, 4L, 2L, 1L), Species = structure(c(2L,
3L, 2L, 1L, 1L, 2L), .Label = c("B", "G", "R"), class = "factor"),
Treatment = structure(c(2L, 3L, 1L, 2L, 3L, 1L), .Label = c("H",
"L", "M"), class = "factor")), .Names = c("Nitrogen", "Species",
"Treatment"), class = "data.frame", row.names = c(NA, -6L))