【发布时间】:2011-11-09 10:49:27
【问题描述】:
我很难重塑数据框以用于误差线图,将所有列与中心趋势数据结合起来,并分别将所有列与错误数据结合起来。
我从一个数据框开始,其中有一列表示自变量,然后是每个测量参数的两列:一列用于平均值,一列用于误差,因为您通常会使用这种类型的电子表格来格式化数据。初始数据框如下所示:
df<-data.frame(
indep=1:3,
Amean=runif(3),
Aerr=rnorm(3),
Bmean=runif(3),
Berr=rnorm(3)
)
我想使用 melt 和 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")
)
但是这些返回一个带有有趣的布尔列的数据框。
我可以手动制作两个数据框(一个用于平均值,一个用于错误),分别融化它们,然后重新组合,但肯定有更优雅的方法吗?
【问题讨论】: