1

エラーバープロットで使用するためにデータフレームを再形成し、すべての列を中央傾向データと組み合わせ、個別にすべての列をエラーデータと組み合わせるのに苦労しています。

まず、独立変数の列を持つデータフレームから始め、次に、測定されたパラメーターごとに2つの列を作成します。1つは平均値用、もう1つはエラー用です。通常、この種のデータでスプレッドシートをフォーマットします。初期データフレームは次のようになります。

df<-data.frame(
  indep=1:3, 
  Amean=runif(3), 
  Aerr=rnorm(3), 
  Bmean=runif(3), 
  Berr=rnorm(3)
)

メルトとdcastを使用して、次のような形式にしたいと思います。

df.cast<-data.frame(
  indep=rep(1:3, 2), 
  series=c(rep("A", 3), 
  rep("B", 3)), 
  means=runif(6), 
  errs=rnorm(6)
)

これで、次のようにggplotにフィードできます。

qplot(data=df.cast, x=indep, y=means, ymin=means-errs, ymax=means+errs, 
      col=series, geom="errorbar")

私は次のような表現を使用して溶かしてから再キャストしようとしています:

df.melt<-melt(df, id.vars="indep")
dcast(df.melt, 
  indep~(variable=="Amean"|variable=="Bmean") + (variable=="Aerr"|variable=="Berr")
)

しかし、これらは面白いブール列を持つデータフレームを返します。

2つのデータフレーム(1つは平均値用、もう1つはエラー用)を手動で作成し、それらを別々に溶かして再結合することもできますが、もっと洗練された方法があるはずです。

4

2 に答える 2

3

これは私がそれをする方法です:

# Melt the data

mdf <- melt(df, id.vars="indep")

# Separate the series from the statistic with regular expressions

mdf$series <- gsub("([A-Z]).*", "\\1", mdf$variable)
mdf$stat <- gsub("[A-Z](.*)", "\\1", mdf$variable)

# Cast the data (after dropping the original melt variable

cdf <- dcast(mdf[, -2], indep+series ~ stat)

# Plot

qplot(data=cdf, x=indep, y=mean, ymin=mean-err, ymax=mean+err, 
    colour=series, geom="errorbar")

ここに画像の説明を入力してください

于 2011-11-09T11:16:02.737 に答える
2

reshapeあなたはベースRでそれを使用してそれを達成することができます

df.cast <- reshape(df, varying = 2:5, direction = 'long', timevar = 'series',
  v.names = c('mean', 'err'), times = c('A', 'B'))
qplot(data = df.cast, x = indep, y = mean, ymin = mean - err, ymax = mean + err, 
  colour = series, geom = "errorbar")
于 2011-11-09T12:38:47.597 に答える