使用 调用下面的函数foo(c("b"))
。输出显示为内联。
我很困惑为什么两者(1)df %>% mutate(!!x_ := 100 + !!x))
和 (2)df %>% mutate(!!x := 100 + !!x))
工作方式相同感到困惑;仅基于dplyr 编程配方(1) 应该可以工作。
foo <- function(variables) {
x <- rlang::sym(variables[[1]])
x_ <- quo_name(x)
print(x)
#> b
print(typeof(x))
#> [1] "symbol"
print(x_)
#> [1] "b"
print(typeof(x_))
#> [1] "character"
df <- data_frame(a = 1, b = 2)
print(df %>% mutate(!!x_ := 100 + !!x))
#> # A tibble: 1 x 2
#> a b
#> <dbl> <dbl>
#> 1 1 102
print(df %>% mutate(!!x := 100 + !!x))
#> # A tibble: 1 x 2
#> a b
#> <dbl> <dbl>
#> 1 1 102
}