Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在条形图错误条中使用SE代替SD?另外,如何更改x轴组的顺序_R_Error Handling_Bar Chart_Standard Deviation_Errorbar - Fatal编程技术网

R 如何在条形图错误条中使用SE代替SD?另外,如何更改x轴组的顺序

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),

我创建了一个条形图,显示狐猴群体在不同行为上花费的时间比例。然而,我面临两个问题

1) 我曾希望用标准误差条代替标准偏差条。我不确定如何将它合并到我现有的代码中。 我当前的ggplot输出如下:

 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))