【发布时间】:2018-02-02 09:24:23
【问题描述】:
我有一个数据框,我想在其中将列名传递给 R in,然后根据该列进行过滤。 我已经尝试阅读一些关于此的教程,它似乎与 R 中的非标准评估有关。
我似乎无法完全理解我阅读过的博客文章中的示例。 为简单起见,我采用了 iris 数据集,我想将一列传递给一个函数,然后该函数将过滤列值大于 1 的数据集。
mydf <- iris
filter_measurements <- function(mydf, measurement){
mydf <- filter(measurement >= 1)
mydf
}
mydf %>%
filter_measurements(measurement = Petal.Width)
我是否必须在我的函数中添加一些内容,以便 R 知道我想要一列而不是将其用作“Petal.Width”。
我看到 Passing a variable name to a function in R 无法适应我的示例
感谢大家的宝贵时间
【问题讨论】:
-
您的示例的问题是 dplyr::filter 本身使用非标准评估。
-
deparse(substitute())可以在这里提供帮助
标签: r