我知道如何为一个因素(例如 experiment )和一个测量(例如 quality )创建带有误差条的常规图。我首先使用给定 on this sitesummarySE 函数总结数据以获得均值和 CI。例如:

   hrc_id experiment  N  quality        sd         se         ci
        0      FB_IS 77 3.584416 0.6757189 0.07700532 0.15336938
        0     FB_ACR 77 3.779221 0.6614055 0.07537416 0.15012064
        1      FB_IS 77 3.038961 0.7854191 0.08950681 0.17826826
        1     FB_ACR 77 3.129870 0.8483831 0.09668223 0.19255935
...

这样我就可以绘制:
ggplot(d, aes(hrc_id, quality), quality, color = experiment)) +
    geom_point(position = position_dodge(width = .5)) +
    geom_errorbar(aes(ymin = quality - ci, ymax = quality + ci), width = .5, position = "dodge")



但是,现在我必须对两个测量执行相同的操作——不仅是 quality ,还有 confidence 。例如,我的数据可能如下所示:
hrc_id confidence confidence_ci  quality quality_ci
     0   3.573718    0.02068321 4.576923 0.02864818
     1   3.403846    0.03193104 1.658120 0.04441434
    10   3.160256    0.02520483 3.038462 0.04476492
...

对于每个 confidence ,我将如何绘制 confidence_ci (使用 quality )和 quality_ci (使用 hrc_id )彼此相邻的图?

我以为我可以对数据帧进行 melt,以便 confidencequality 成为测量变量,但随后我丢失了属于它们的 CI 值。

最佳答案

您可以使用 reshape(...) 一步将您的数据帧转换为带有分组列的长格式。假设您的数据帧是 df :

gg <- reshape(df,idvar="hrc_id",               # idvar: identifies cases
              times=c("confidence","quality"), # group of columns to be reshaped
              timevar="measurement",           # column name to use for grouping vars
              varying=2:5,                     # columns are to be reshaped
              v.names=c("value","value.ci"),   # column names for reshaped values
              direction="long")                # convert to long format
gg
#               hrc_id measurement    value   value.ci
# 0.confidence       0  confidence 3.573718 0.02068321
# 1.confidence       1  confidence 3.403846 0.03193104
# 10.confidence     10  confidence 3.160256 0.02520483
# 0.quality          0     quality 4.576923 0.02864818
# 1.quality          1     quality 1.658120 0.04441434
# 10.quality        10     quality 3.038462 0.04476492

据我所知,您不能使用 melt(...) 执行此操作 - 您必须使用评论中提到的 rbind 方法。

关于r - ggplot 带有两个测量变量和一个因子的误差条,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20846168/

10-12 14:04