値(mean
)がとで指定された間隔内に収まるか収まらないデータセットがlower.bound
ありupper.bound
ます。これを使ってプロットしたいと思いますlattice
が、本当に素晴らしいことを達成しましたが、まだ3つ欠けていることがあり、取り組む方法がわかりません(私は比較的新しいですlattice
)。
df <- read.table("http://pastebin.com/raw.php?i=FQh6F12t")
require(lattice)
lattice.options(default.theme = standard.theme(color = FALSE))
head(df)
## code topic problem mean lower.bound upper.bound consistent
## 7 A04C coke MP 99.5 36.45 95.95 0
## 8 A04C coke MT 47.5 22.78 100.00 1
## 11 A04C girl MP 50.0 4.75 9.75 0
## 12 A04C girl MT 99.5 20.00 100.00 1
## 23 A14G coke MP 88.5 21.25 66.75 0
## 24 A14G coke MT 82.5 48.36 100.00 1
dotplot(lower.bound + mean + upper.bound ~ code | problem * topic,
data = df, pch = c(6, 3, 2), scales = list(x = list(draw = FALSE)),
as.table = TRUE)
これにより、次のものが生成されます。
下向き矢印/三角形は下限を示し、上向き矢印/三角形は上限を示し、+
マークはmean
。次のことをプロットに追加したいのですが、方法がわかりません(明らかにパネル機能をカスタマイズする以外に):
- 値が間隔内に
pch
あるかどうかに基づく条件付き。mean
変数consistent
はこれを示します(0 =間隔外)。間隔内の値と間隔外の値に使用するpch
必要があります。(下限と上限のpchは変更しないでください)1
3
- 間隔をマークします。
lower.bound
とupper.bound
各x軸ティックの間に太い線を引きたいと思います。 - 間隔の外側の値の比率をパネルヘッダー(たとえば、
MP; 58.6%
左上隅のパネル)に追加します。
1と2の場合、私の問題は明らかに、複数のy変数がある場合にカスタムパネル関数を処理する方法(つまり、これに基づいて条件付きパネル関数を作成する方法)がわからないことです。しかし、何も見つかりませんでした。
3の場合、間隔外の値の比率は次のようになります。
1 - with(df, tapply(consistent, list(topic, problem), mean))
## MP MT
## coke 0.5862 0.1724
## girl 0.8276 0.1724
答えにさらにx軸上のレベルの適切な順序が含まれている場合、それは間違いなくプラスになります。順序はすべてのパネルで変更できます(つまり、上下のパネルでも、同じx軸の目盛りが異なるレベルに対応する可能性がありますcode
)。しかし、これは重要ではありません。