dplyr中来自String的新列

时间:2019-05-16 06:42:20

标签: r dplyr

我有一个数据框:

library(tidyverse)

df <- tribble(~col1, ~col2, 1, 2)

现在,我想创建一列。我在字符串中有新列的名称。它确实像这样工作:

df %>%
    mutate("col3" = 3)

# A tibble: 1 x 3
   col1  col2  col3
  <dbl> <dbl> <dbl>
1     1     2     3

但是它不能这样工作:

newColumnName <- "col3"
df %>%
    mutate(newColumnName = 3)

# A tibble: 1 x 3
   col1  col2 newColumnName
  <dbl> <dbl>         <dbl>
1     1     2             3

如何创建一个新列,该列从对象中的字符串获取名称?

1 个答案:

答案 0 :(得分:4)

要设置变量名,请使用!!和定义操作符:=,如here所述:

  

:=支持在LHS和RHS上都取消引用

df %>% mutate(!!newColumnName := 3)

# A tibble: 1 x 3
   col1  col2  col3
   <dbl> <dbl> <dbl>
1     1     2     3