小编Koo*_*opa的帖子

如何在 R 中使用 dplyr::mutate 中的表达式

我想根据给定的字符向量添加一个新列。例如,在下面的示例中,我想添加d在中定义的列expr

library(magrittr)

data <- tibble::tibble(
  a = c(1, 2),
  b = c(3, 4)
)

expr <- "d = a + b"
Run Code Online (Sandbox Code Playgroud)

如下:

data %>%
  dplyr::mutate(d = a + b)

# # A tibble: 2 x 3
#       a     b     d
#   <dbl> <dbl> <dbl>
# 1     1     3     4
# 2     2     4     6
Run Code Online (Sandbox Code Playgroud)

然而,在下面的代码中,虽然计算本身(即添加)有效,但新列的名称与我的预期不同。

data %>%
  dplyr::mutate(!!rlang::parse_expr(expr))

# # A tibble: 2 x 3
#       a     b `d = a + b`
#   <dbl> <dbl> …
Run Code Online (Sandbox Code Playgroud)

evaluation expression r dplyr non-standard-evaluation

5
推荐指数
1
解决办法
1192
查看次数