-2

我得到了一个包含 14 个主题的 10 个度量的数据集,我想在 ggplot2 中制作一个包含每个主题的平均分数和误差条(置信区间)的条形图。但我不确定如何塑造数据以便能够制作这样的图。

任何指示或帮助将不胜感激。

4

1 回答 1

1

ggplot2需要长格式的数据。这意味着每个数据点必须位于不同的行上。您想要计算 14 个受试者的平均值和 CI。因此,您应该有一个包含主题、平均值和 CI 列以及 14 行的 data.frame。这是两个主题的示例:

set.seed(1)
dat <- data.frame(Subject = c(rep("Sub1", 10), rep("Sub2", 10)),
Measure = rep(paste0("Meas", 1:10),2),
Value = rnorm(20,15,3)) 

library(plyr)
se <- function(x) sd(x)/sqrt(length(x))
dat.new <- ddply(dat, .(Subject), summarize, mean = mean(Value), 
CI = qnorm(0.975)*se(Value))

dat.new
# Data format for ggplot
#  Subject     mean       CI
#1    Sub1 15.39661 1.686627
#2    Sub2 15.74653 1.974250

library(ggplot2)

ggplot(dat.new, aes(x = Subject, y = mean, ymin = mean, ymax = mean + CI)) +
geom_bar(stat="identity") + geom_errorbar(width=0.25)

在此处输入图像描述

有关详细信息,请参阅ggplot2 文档、有关ggplot2 条形图误差线的其他问题。

于 2013-04-17T11:40:51.490 回答