【发布时间】:2018-06-17 17:12:58
【问题描述】:
我面临以下异常:
library(tidyverse)
library(dplyr)
library(rlang)
data(mtcars)
select_expr = "mpg , cyl"
mtcars %>% select_(select_expr)
Error in parse(text = x): <text>:1:5: unexpected ','
1: mpg ,
^
我做错了什么?
【问题讨论】:
-
dplyr 的
*_函数正在慢慢被弃用 in favor of rlang。上面的等价物可能是select_expr <- c("mpg", "cyl"); mtcars %>% select(!!!syms(select_expr)),但在这种情况下,您也可以使用 tidyselect 助手:mtcars %>% select(one_of(select_expr)) -
在一个字符串中存储多个名称并不是一个好主意,因为它不容易转换回可运行的代码。名称向量(无论是字符串、表达式、引号还是其他)更易于使用。
标签: r select dplyr tidyverse rlang