Я надеюсь, что кто-то может помочь найти дробовик для создания барплота с барами ошибок. В целом мне нравится этаПростой способ построения диаграммы с помощью SE
# some dummy data
q <- setNames(data.frame(matrix(sample(100,400,T), nrow=20)),
c("A","B","C","D","E","F","G","H","I","G","K","L","M","O","P","Q","R","S","T","U"))
#I usually melt the data
library(reshape2)
a1 <- melt(q)
# summarize them
library(plyr)
a2 <- ddply(a1, c("variable"), summarise, mvalue = mean(value, na.rm=TRUE),
medvalue = median(value, na.rm=TRUE),
sd = sd(value, na.rm=TRUE),
n = sum(!is.na(value)),se = sd/sqrt(n))
#However, I got an error in generating se:
#Error in sd/sqrt(n) : non-numeric argument to binary operator
# then I plot the graph
library(ggplot2)
ggplot(sum1, aes(x=variable, y=mvalue, fill=variable))+
geom_bar(stat='identity', position='dodge')+
geom_errorbar(aes(ymin=mvalue-sd,ymax=mvalue+sd))+
scale_fill_grey()
# here i used the sd instead of se
Почему я получил ошибку на se
? Есть ли способ сохранить все эти шаги, чтобы создать барьеры с ошибками более разумным способом?
Я никогда не использовал 'plyr' раньше, но то, что случилось с просто используйте' aggregate' из базы R? Следующее, похоже, работает 'aggregate (value ~ variable, a1, function (x) c (mean = mean (x, na.rm = TRUE), medvalue = median (x, na.rm = TRUE), sd = sd (x, na.rm = TRUE), se = sd (x, na.rm = TRUE)/sqrt (sum (! is.na (x))))) ' –
спасибо, david, не могли бы вы показать, как для построения данных с помощью ggplot? – Samehmagd
Ваш код не работает сгенерированный 'se'? –