使用带有多个组变量的summarySE结果表创建条形图

时间:2015-03-25 13:20:08

标签: r ggplot2

我有summarySE函数的结果表:

    a        b N               variable   sd    se   ci
 1234      foo 264                  2.0 0.87 0.053 0.11
 1234      bar 111                  3.6 1.35 0.128 0.25
 5678      foo 169                  1.8 1.02 0.079 0.16
 5678      bar 118                  1.6 1.13 0.104 0.21
91011      foo   9                  1.3 1.35 0.450 1.04
91011      bar 384                  1.0 1.12 0.057 0.11

我想创建一个条形图,其中每一行对应一个条形,其高度为variable - 所以我需要stat="identity"。现在,通常,我这样做没有问题:

column = "varaible"
ggplot(data, aes_string(y = column)) + geom_bar(stat = "identity")

但它失败了:

Error during wrapup: argument "env" is missing, with no default

当然,因为有多个列定义x是什么。如果我做

ggplot(data, aes_string(x = "a", y = column)) + geom_bar(stat = "identity")

它适用于a的唯一值,但不考虑b。如何将ab的两种组合视为x值?

1 个答案:

答案 0 :(得分:1)

你可以使用另一种美学如填充

ggplot(data, aes_string(x = "a", fill = "b", y = column)) + 
  geom_bar(stat = "identity") 

或连接两列

ggplot(transform(data, t = paste(a, b)), 
       aes_string(x = "t", y = column)) + 
  geom_bar(stat = "identity")