我想根据给定的字符向量添加一个新列。例如,在下面的示例中,我想添加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)