【问题标题】:R - two factor ggplot2 bargraphR - 两个因素 ggplot2 条形图
【发布时间】:2020-02-20 20:23:56
【问题描述】:

我有一个包含两个因素的数据框 (df):

f1,f2,value,    
A, 1, .5,
A, 1, .7,
A, 2, .2,
A, 2, .4,
B, 1, .3,
B, 1, .5,
B, 2, .1,
B, 2, .3,

我想表示这个数据,其中“f1”在 x 轴上,数据被“f2”分解,2 个条表示“值”的平均值,sd 误差条按因子“f2” .'

即'A' 有两个单独的列(.6 和 .3)和 'B';同样 (.4 & .2) 带有关联误差线。

我总是可以重塑数据以尝试使其工作,但我想知道是否有更简单的方法来解决这个问题。我在其他线程中看到了一些类似的东西,但没有什么效果很好。

非常感谢您的帮助!

【问题讨论】:

  • 我可能不够努力,但我很难在您的数据中找到.6。 “A 有两个单独的列”是什么意思?

标签: r ggplot2


【解决方案1】:
library(tidyverse)
library(ggplot2)

df %>%
  group_by(f1, f2) %>%
  summarise(mean = mean(value),
            SD = sd(value),
            n = n(),
            SE = SD/sqrt(n)) %>%
  ggplot(aes(x = f1, y = mean, group = f2, fill = f2)) +
    geom_bar(stat = "identity", position = "dodge", width = .5) +
    geom_errorbar(aes(ymax = mean + SE, ymin = mean - SE), position = position_dodge(.5), width = .2)

情节

【讨论】:

  • 非常感谢您的帮助。这一切看起来都很棒,但是当我运行它时,我得到一个:错误:n() 只能在数据上下文中调用
  • 也可以尝试指定包 - 例如,dplyr::summarisedplyr::n
  • 我设法纠正了它,指定:dplyr::summarise 再次感谢。现在看起来很漂亮。