代码之家  ›  专栏  ›  技术社区  ›  Earlien

将解析文本中的加号作为ggplot2运算符进行求值

  •  0
  • Earlien  · 技术社区  · 1 年前

    像这样的问题 this one 解释如何计算解析后的字符串,但当 + 位于字符串内部,作为组合层的运算符 ggplot .

    例如。

    ggplot(data = mtcars) + eval(parse(text = "geom_point(aes(x = cyl, y = disp))"))
    

    有效,但这不起作用:

    ggplot(data = mtcars) + 
      eval(parse(text = "geom_point(aes(x = cyl, y = disp)) + theme_bw()"))
    

    是否有其他方法来评估 + 操作员在 ggplot 背景?

    1 回复  |  直到 1 年前
        1
  •  1
  •   user2554330    1 年前

    遵循@Axeman的见解,以下是一种做你想做的事情的方法:

    p <- ggplot(data = mtcars)
    eval(parse(text = "p + geom_point(aes(x = cyl, y = disp)) + theme_bw()"))
    

    这之所以有效,是因为R使用sum中第一个对象的类来分派给正确的方法来处理它。在您失败的原始示例中,第一个对象是 geom_point(aes(x = cyl, y = disp)) 与其他班级不同 ggplot(data = mtcars) 有。