当数据是tapply的函数时,如何在R中使用ggplot2

时间:2016-03-14 04:33:47

标签: r ggplot2 tapply

我有一个变量是tapply

的函数
  

meanx <- with(dat2, tapply(x, list(type,status), mean))   输出内容如下:

        Status 1 Status2
Type 1 11.99     9.8 
Type 2 88.8      100

我也有4种方法的置信区间

xCI <- c(meanx - qnorm(0.975, mean=0, sd=1)*serrorx,
         meanx + qnorm(0.975, mean=0, sd=1)*serrorx)

我想用置信区间绘制一个简单的gglpot2条形图。由于meanx是一个tapply函数,每次我尝试使用它时都会卡住。将它保存为带有一串值的新变量并将其用于普通条形图或ggplot2中非常繁琐。任何帮助将不胜感激。 (我是gglopt2的新手)

谢谢!

1 个答案:

答案 0 :(得分:2)

一种可能性是将表输出转换为data.frame,并将其传递给ggplot。另一种可能更简单的方法是使用stat_summary函数来计算ggplot框架中的摘要统计信息。

## Sample data
dat2 <- data.frame(
  type=paste("Type ", sample(1:2, 50, TRUE)), 
  status=paste("Status ", sample(1:2, 50, TRUE)),
  x = runif(50)
)

library(ggplot2)
ggplot(dat2, aes(interaction(type, status, sep = "/"), x)) +
  stat_summary(geom="bar", fun.y=mean, fill="lightblue") +
  stat_summary(geom="errorbar", fun.data=mean_cl_boot, color="red", width=0.4) +
  theme_bw() +
  scale_x_discrete("type-status")

enter image description here