我得到了一个包含10个测量数据集的14个科目的数据集,我想在ggplot2中制作一个条形图,其中每个主题的平均分数和错误栏(保密间隔)。但我不知道如何塑造数据以便能够制作这样的情节。
任何指针或帮助都将非常感激。
答案 0 :(得分:1)
ggplot2
需要长格式的数据。这意味着每个数据点必须位于不同的行上。您想要计算14个科目的平均值和CI。因此,您应该拥有一个包含Subject,average和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 doc's,有关ggplot2 bar plots和error bars的其他问题。