我有一个数据框:
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
如何创建一个新列,该列从对象中的字符串获取名称?
答案 0 :(得分:4)
要设置变量名,请使用!!
和定义操作符:=
,如here所述:
:=支持在LHS和RHS上都取消引用
df %>% mutate(!!newColumnName := 3)
# A tibble: 1 x 3
col1 col2 col3
<dbl> <dbl> <dbl>
1 1 2 3