1

R のほとんどは、データを適切な形式に変換しています。私は、それぞれ 3 つのグループが 2 つある 2 パネルの格子プロットの作成に苦労しています。最終的には、Lower95 から Upper95 までの線と、各 Drug と Test の Center のポイントを示し、6 つの線を持つ 2 つのパネル (Sen & Spec) を持つ一連の簡略化されたボックス ポットを示したいと思います (およびそれらのポイント)。

私の単純化されたデータは次のようになります

   df2 <- data.frame (
     Center = c(0.94, 0.97, 0.95, 0.97, 1,    0.94,         1,    0.99, 0.96, 0.98, 0.98, 0.99),
     Lower95 =c(0.91, 0.95, 0.93, 0.95, 0.98, 0.91,         0.98, 0.96, 0.92, 0.96, 0.95, 0.96),
     Upper95 =c(0.96, 0.98, 0.97, 0.98, 1,    0.96,         1,    1,    0.98, 0.99, 0.99, 1   ),
     Y     =  c(1,2,3,4,5,6,1,2,3,4,5,6),
     Drug=c("INH","INH","INH","RIF","RIF","RIF","INH","INH","INH","RIF","RIF","RIF"),
     Test=c("LPA","MODS","PSQ","LPA","MODS","PSQ","LPA","MODS","PSQ","LPA","MODS","PSQ"),
     Measure=c("Sen","Sen","Sen","Sen","Sen","Sen","Spec","Spec","Spec","Spec","Spec","Spec") 
     ) 

   attach(df2)
   xyplot(Y~Lower95+Upper95|Measure, df=df2, type="o")

したがって、これはこの画像を出力し、いくつかの問題があります- オリジナル

  1. Y を「ダミー」変数として使用して、同じパネルで 3 つのテストの 2 つのグループを取得しようとしていますが、意図したとおりに機能していないようです。3 つのテストの 2 つのグループが各パネルにあります (ただし、#2 を参照してください)。
  2. プロットは、3 つのテストの 3 つのポイントを接続します (Lower95 と Upper95 の 2 つのポイントではありません)。
  3. センターをポイントとしてチャートに入れる方法がわかりません

これが私が望むもののようなものです(GIMPでの私のハック)-希望するチャート

データの再形成に失敗しましたが、xyplot 内の他のいくつかのもの (さまざまな要因/グループなど) を試しましたが、希望どおりに動作させることができないようです。

ご協力いただきありがとうございます !

4

1 に答える 1

1

あなたが描いているものは、latticeドットプロットに最も似ています。Standardlatticeはエラー バーには適していませんが、ライブラリはその機能を関数にうまくHmisc追加します。latticeだからあなたはできる

library(lattice)
library(Hmisc)
Dotplot(Test~Cbind(Center,Lower95,Upper95)|Measure+Drug, df2)

取得するため

ここに画像の説明を入力

さらに一歩進みたい場合はlatticeExtra、薬物ラベルを左に移動することもできます

library(latticeExtra)
useOuterStrips(Dotplot(Test~Cbind(Center,Lower95,Upper95)|Measure+Drug, df2))

その結果、

ここに画像の説明を入力

于 2014-09-25T18:36:50.270 に答える