我正在使用map2
和mutate
修改foo
中的嵌套数据帧,并且我想根据foo$name
在每个嵌套数据帧中命名一个变量。我不确定在这里使用非标准评估(NSE)/tidyeval
去引用的正确语法。
library(tidyverse)
foo <- mtcars %>%
group_by(gear) %>%
nest %>%
mutate(name = c("one", "two", "three")) %>%
mutate(data = map2(data, name, ~
mutate(.x, !!(.y) := "anything")))
#> Error in quos(...): object '.y' not found
我希望在嵌套的数据框中,新创建的变量名称分别为“one”,“two”和“three”。基于我平常在普通df上使用的正常语法进行尝试,其中name是一个字符串:
name <- "test"
mtcars %>% mutate(!!name := "anything") # works fine
如果成功,下面这行代码应该返回
TRUE
:foo[1,2] %>% unnest %>% names %>% .[11] == "one"