我得到了一个包含 14 个主题的 10 个度量的数据集,我想在 ggplot2 中制作一个包含每个主题的平均分数和误差条(置信区间)的条形图。但我不确定如何塑造数据以便能够制作这样的图。
任何指示或帮助将不胜感激。
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 条形图和误差线的其他问题。