【问题标题】:How do incoporate arguments in functions into ggplot2/dplyr conventions如何将函数中的参数合并到 ggplot2/dplyr 约定中
【发布时间】:2015-05-24 22:00:55
【问题描述】:

对于措辞不当的问题,我感到很抱歉,但我认为这可能是一个我还没有找到答案的常见问题。

ggplot/dplyr 不使用字符类型调用列名来过滤/分组:

library(dplyr)
library(ggplot2)
mtcars %>%
      filter(gear > 4)

#OR
enter code here


ggplot(data = mtcars, aes(x = disp, y = wt, color = factor(gear))) + geom_point()

...所以如果想构建一个函数来使用这些非字符类型将齿轮换到不同的列,我该怎么做?我需要打电话给assign吗?

这是一个过滤的 hacky 解决方案,可能有助于澄清我的问题:

filter_foo <- function(data, column, value) {
  data[column > value,]
}

filter_foo(mtcars, mtcars$gear , 4) 

【问题讨论】:

标签: r ggplot2 dplyr


【解决方案1】:

在 Henrik 在我的帖子的 cmets 和这个 SO question 的帮助下,我了解到我感兴趣的是对 dplyr/ggplot2 应用非标准评估。并使用字符向量在下面重新创建我想要的结果。

library(lazyeval)
library(ggplot2)
library(dplyr)
filter_criteria <- interp(~ which_column > 4, which_column = as.name("gear"))
mtcars %>%
  filter_(filter_criteria)

#OR 
ggplot(data = mtcars, aes_string(x = "disp", y = "wt", color = "factor(gear)")) + geom_point()

【讨论】:

    猜你喜欢
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多