Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.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 使用长格式数据集计算和绘制标准误差_R_Ggplot2 - Fatal编程技术网

R 使用长格式数据集计算和绘制标准误差

R 使用长格式数据集计算和绘制标准误差,r,ggplot2,R,Ggplot2,我正在制作一个由学校制作的不同口味冰淇淋的受欢迎程度图。我已经有了绘制图的代码,但我一直在计算错误条并将其添加到图中。我知道summary和geom_errorbar是有效的,但我不知道如何用长数据格式计算标准误差 以下是可复制的代码: IDs <- seq(1,50) IDs <- data.frame(rep(IDs, each = 5)) names(IDs)[1] <- "ID" tastes <- c("Strawberry&qu

我正在制作一个由学校制作的不同口味冰淇淋的受欢迎程度图。我已经有了绘制图的代码,但我一直在计算错误条并将其添加到图中。我知道
summary
geom_errorbar
是有效的,但我不知道如何用长数据格式计算标准误差

以下是可复制的代码:

IDs <- seq(1,50)
IDs <- data.frame(rep(IDs, each = 5))
names(IDs)[1] <- "ID"

tastes <- c("Strawberry", "Vanilla", "Chocolate", "Matcha", "Sesame")
tastes <- data.frame(rep(tastes, times = 50))

#random numbers for schools 
A <- runif(250, 1,5)
B <- runif(250, 1,5)
C <- runif(250, 1,5)

#merge
test <- cbind(IDs, tastes)
test <- cbind(test, A)
test <- cbind(test, B)
test <- cbind(test, C)
names(test)[2] <- "Flavour"
#make long
test_long <- melt(test, 
                   id.vars = c("ID", "Flavour"))

#plot
plot <- ggplot(test_long) +
  geom_bar(aes(x = Flavour,
               y = value), stat="summary", fun=mean) + 
  scale_x_discrete(labels=c("C","M","S","S","V")) +
  coord_cartesian(ylim=c(1,5)) +
  facet_grid(. ~ variable) + 
  labs(title = "Likeability of Different Flavours by School") +
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_blank(), axis.line = element_line(colour = "black"))
plot

IDs一个可能的解决方案是使用一个新的
data.frame
生成
summary

library(dplyr)
summary_test <-
  test_long %>%
  group_by(Flavour, variable) %>%
  summarise(mean = mean(value),
            SE = sd(value) / sqrt(n()))

#plot
plot <- ggplot(summary_test, aes(x = Flavour, y = mean)) +
  geom_errorbar(aes(ymin = mean - SE, ymax = mean + SE)) +
  geom_bar(stat = "identity") + 
  scale_x_discrete(labels=c("C","M","S","S","V")) +
  coord_cartesian(ylim=c(1,5)) +
  facet_grid(. ~ variable) + 
  labs(title = "Likeability of Different Flavours by School") +
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_blank(), axis.line = element_line(colour = "black"))
plot
库(dplyr)
汇总测试%
分组依据(风味、变量)%>%
总结(平均值=平均值),
SE=sd(值)/sqrt(n())
#密谋
情节