R 如何在条形图错误条中使用SE代替SD?另外,如何更改x轴组的顺序
我创建了一个条形图,显示狐猴群体在不同行为上花费的时间比例。然而,我面临两个问题 1) 我曾希望用标准误差条代替标准偏差条。我不确定如何将它合并到我现有的代码中。 我当前的ggplot输出如下:R 如何在条形图错误条中使用SE代替SD?另外,如何更改x轴组的顺序,r,error-handling,bar-chart,standard-deviation,errorbar,R,Error Handling,Bar Chart,Standard Deviation,Errorbar,我创建了一个条形图,显示狐猴群体在不同行为上花费的时间比例。然而,我面临两个问题 1) 我曾希望用标准误差条代替标准偏差条。我不确定如何将它合并到我现有的代码中。 我当前的ggplot输出如下: data_summary <- function(data, varname, groupnames){ require(plyr) summary_func <- function(x, col){ c(mean = mean(x[[col]], na.rm=TRUE),
data_summary <- function(data, varname, groupnames){
require(plyr)
summary_func <- function(x, col){
c(mean = mean(x[[col]], na.rm=TRUE),
sd = sd(x[[col]], na.rm=TRUE),)
}
data_sum<-ddply(data, groupnames, .fun=summary_func,
varname)
data_sum <- rename(data_sum, c("mean" = varname))
return(data_sum)
}
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-sd, ymax=Time+sd), width=.2,
position=position_dodge(0.9))
data\u summaryI替换为:
sd = sd(x[[col]], na.rm=TRUE)
与:
它是SD除以长度的平方根
数据摘要函数中还有一个额外的逗号
可以通过对因子重新排序来更改列的顺序
mydata_bc$Behaviour <- factor(mydata_bc$Behaviour, levels = c("Resting","Feeding","Socialising","Locomotion"))
mydata\u bc$behavior你好,伊恩,谢谢你的回复。我使用了你的代码,但遗憾的是它无法工作,我收到了如下错误消息:c中的错误(平均值=mean(x[[col]],na.rm=TRUE),se=sd(x[[col]],na.rm=TRUE)/sqrt(sum(!is.na(x[[col]])),:参数3是空的
此外,如果对您有帮助的话,我现在已经包括了我的csv数据表。嗨@BenMorrison,我在您的原始代码中发现了一个错误的逗号。我还编辑了我的帖子以重新排列列。嗨,Ian,谢谢它起作用了!您帮了我很大的忙
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))