1

いくつかのテスト結果のヒストグラムを作成するために、Rでggplot2を利用しています。現在、Glucose_Results2テーブルの年ごとの分析があります。このテーブルには1つのValue列と1つのYear列(および多数の行)があります。

Gval2 <- read.csv('Glucose_Results2.csv', sep = ',', header=T)
Gdist = qplot(Value, binwidth=10, data=Gval2, geom="histogram", 
  main="Distribution of Glucose Levels",
  xlab="Glucose Levels in mg/dl",
  ylab="Frequency")
Gval2$Year = factor(Gval2$Year)
Gdist + facet_wrap( ~ Year)

これにより、2005年から2012年までのプロットが得られます。これらのプロットの配色を変更して、各年の基準範囲内にある値を示すことに興味があります(以下を参照)。したがって、2005年には、70〜110の値のビンをたとえば赤にしたいのに対し、その範囲外のビンは黒のままにすることができます。

>  Gref2
  REFERENCE_LOW REFERENCE_HIGH REFERENCE_YEAR
1            70            110           2005
2            70            110           2006
3            70            110           2007
4            70            110           2008
5            70            110           2009
6            70            100           2010
7            70            100           2011
8            70            100           2012

Rでの経験はほんの数週間なので、これを行う方法が本当にわかりません。

理想的には、これには参照高と参照低のラベル、または赤=参照範囲内の効果のラベルが含まれますが、私はそれについて過度に心配していません。私が欲しいのは、上記の表を読み取り、ヒストグラムの年に基づいて適切な参照範囲を選択するソリューションです(ただし、それが問題になる場合は、手動で数値を入力できます)。

これを読んでくれてありがとう!

4

1 に答える 1

4

ggplot を使用して色を制御する最も簡単な方法は、データ フレームに変数を取得して、その変数がどのグループ (参照範囲内または参照範囲外のグループ) に属しているかを示すことです。これは、一連の手順によって実現できます。まず、各ケースについて、年に基づいて適切な制限を一致させます。

Gboth <- merge(Gval2, Gref2, by.x="Year", by.y="REFERENCE_YEAR")

これは、 の各行に対して、 の列と の列を一致させることによって定義されたGval2の適切な行に一致します。次に、値と参照限界を使用して指標列を作成できます。後で作業を簡単にするためにラベル付けした要素にしましたが、厳密には必要ではありません。Gref2YearGval2REFERENCE_YEARGref2

Gboth$within <- factor(Gboth$REFERENCE_LOW < Gboth$Value & 
                       Gboth$Value <= Gboth$REFERENCE_HIGH,
                       levels = c(FALSE, TRUE),
                       labels = c("Outside reference range",
                                  "Within reference range"))

これで、この変数を使用して色を指定できます (実際には、塗りつぶしです。ヒストグラムの場合、色は棒の周りの線の色であり、塗りつぶしは棒を塗りつぶすものだからです)。qplotまた、完全なggplot構文に翻訳しました。は、構文に慣れるまでコマンドからqplot移行するのに役立ちますが、それほど表現力がありません。plotゼロから学習している場合は、スキップすることもできます。

ggplot(Gboth, aes(x=Value)) +
  geom_histogram(aes(fill=within), binwidth=10) +
  facet_wrap( ~ Year) +
  scale_x_continuous("Glucose Levels in mg/dl") +
  scale_y_continuous("Frequency") +
  scale_fill_manual("", breaks=c("Outside reference range", 
                                 "Within reference range"),
                    values = c("black", "red")) +
  opts(title = "Distribution of Glucose Levels")

のいくつかの構成値についてGval2、次のようなグラフが得られます

ここに画像の説明を入力

于 2012-07-20T17:30:26.490 に答える