首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在dplyr函数的左侧执行NSE?

在dplyr中,NSE(Non-Standard Evaluation)是指在函数调用中使用非标准评估方法。在dplyr的语法中,使用NSE可以让我们在函数的左侧执行表达式。

要在dplyr函数的左侧执行NSE,我们可以使用dplyr提供的“!!”运算符或者使用“enquo()”函数和“!!”运算符的组合。

下面是两种方法的示例:

方法1:使用“!!”运算符

代码语言:txt
复制
library(dplyr)

column_name <- "Sepal.Length"
filter_expr <- quo(Species == "setosa")
iris %>% filter(!!filter_expr) %>% select(!!sym(column_name))

在这个示例中,我们使用quo()函数将表达式“Species == "setosa"”转换为一个语法树对象。然后,我们使用“!!”运算符在filter()函数中执行这个语法树对象,从而在函数的左侧执行NSE。

方法2:使用“enquo()”函数和“!!”运算符的组合

代码语言:txt
复制
library(dplyr)

column_name <- "Sepal.Length"
filter_expr <- enquo(Species == "setosa")
iris %>% filter(!!filter_expr) %>% select(!!sym(column_name))

在这个示例中,我们使用enquo()函数将表达式“Species == "setosa"”转换为一个语法树对象。然后,我们使用“!!”运算符在filter()函数中执行这个语法树对象,从而在函数的左侧执行NSE。

这两种方法都可以达到在dplyr函数的左侧执行NSE的效果。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券