Я заменил:
sd = sd(x[[col]], na.rm=TRUE)
На:
se = sd(x[[col]], na.rm=TRUE) / sqrt(sum(!is.na(x[[col]])))
Что представляет собой SD, разделенное на квадрат root длины.
Был также дополнительная запятая в вашей функции data_summary.
Вы можете изменить порядок столбцов, переупорядочив коэффициент.
mydata_bc$Behaviour <- factor(mydata_bc$Behaviour, levels = c("Resting","Feeding","Socialising","Locomotion"))
Затем вы можете построить график.
data_summary <- function(data, varname, groupnames){
require(plyr)
summary_func <- function(x, col){
c(mean = mean(x[[col]], na.rm=TRUE),
se = sd(x[[col]], na.rm=TRUE) / sqrt(sum(!is.na(x[[col]]))))
}
data_sum<-ddply(data, groupnames, .fun=summary_func,
varname)
data_sum <- rename(data_sum, c("mean" = varname))
return(data_sum)
}
mydata_bc$Behaviour <- factor(mydata_bc$Behaviour, levels = c("Resting","Feeding","Socialising","Locomotion"))
df4 <- data_summary(mydata_bc, varname="Time",
groupnames=c("Group", "Behaviour"))
p <- ggplot(df4, aes(x=Behaviour, y=Time, fill=Group)) +
geom_bar(stat="identity", position=position_dodge()) +
geom_errorbar(aes(ymin=Time-se, ymax=Time+se), width=.2,
position=position_dodge(0.9))