1

特定のデータセットを使用して、R で beeswarm プロットを作成しようとしています。私はRの専門家ではありません。私のデータは次のようになります。

group    p1    p2    p3    p4
A       .01    .1    n/a   1.9
A       2.0    n/a   n/a   .05
A       n/a    n/a   n/a   .3
B       .05    .1    1.0   .5
B       1.0    .02   .054  .01
B       .05    n/a   3.1   .8

私が見たいのは、p1、p2、p3、および p4 の列を持つ蜂の巣プロットです。各列には、異なるグループ (「A」は赤、「B」は青) で色分けされた異なるグループが表示されます。例)。y 軸では、実際のデータ ポイント/測定値を確認したいと思います。

それが簡単になる場合は、グループごとにデータを分離することもできます。そのため、同じプロットで重複できる「A」用のテーブルと「B」用のテーブルが 1 つずつあります。

列をp1、p2などに対応させ、入力データを指定して列のさまざまな測定値をオーバーレイする方法がわかりません。

4

1 に答える 1

2

私が使用できるサンプルデータが提供されていないため、データがどのようになっているのかよくわかりません。欠損値インジケーターとして「n/a」を使用すると、おそらくまだ問題が発生するでしょう..

とにかく、ここにそれを達成する方法があります

あなたのものに似たサンプルデータセットを作成しましょう:

 set.seed(3)
x <- data.frame(p1 = rnorm(5,10,4), p2 = rnorm(5, 40, 10),
            p3=rnorm(5,1,3), p4=rnorm(5,6,4),
            group=sample(c("A", "B"), 5, replace = TRUE))

gouping 変数が 5 列目にあることに注意してください。これで、次のようにして、簡単に蜂の巣状のプロットを作成できます (列ごとに自動的にグループ化されるため)。

library("beeswarm")
beeswarm(x[,-5])

列 5 はグループ化が含まれており、データがないため省略されています。

今、色のために。私が考えることができる最も簡単な方法pwcolは、beeswarm 関数の引数を使用することでした。そのためには、まずカラー ベクトルを作成する必要があります。おそらくこれをすべて行うためのより良い方法がありますが、これは機能します。

グループが「A」の場合は 2 を、A でない場合は 3 を含む列 5 からカラー ベクトルを作成します。2 と 3 は任意に選択されます。これらは色の値です (ここでは赤と緑)。好きな値をcol選択できます。

colors=ifelse(x$group=="A", 2,3) 

ベクトルの長さはわずか 5 であるため、beeswarm の最初の列の色付けにのみ使用できたので、拡大する必要があります (データポイントごとに 1 つの色値が必要です)。

colors=rep(colors, ncol(x[,-5]))
beeswarm(x[,-5], pwcol=colors)

あなたのデータで頑張ってください!

于 2014-01-23T15:04:46.803 に答える