Я создаю рабочий процесс, который содержит те же этапы переименования, выбирая, затем изменяя все, используя имя, которое я предоставляю перед конвейером.
Я успешно использовал enquo()
и !!
(bang bang), чтобы переименовать желаемую строку и затем выбрать ее снова, но когда я достигну шага изменения, он либо повторяет текстовую строку в качестве столбцазначения или не будут оцениваться.
Я воссоздал код ниже:
#Testing rename, select, and mutate use cases for enquo()
#Load packages
library(dplyr)
library(rlang)
library(magrittr)
#Create name I want to pass
new_var <- quo("new_name")
#Create Test Data
t1 <- tibble(Year = c(2000:2004),
old_name = c(NA, 1, 1, 1, NA))
Я могу переименовать столбец с quo_name()
и :=
t1 %>%
rename( !! quo_name(new_var) := old_name)
Я могу выбрать его, используя !!
t1 %>%
rename( !! quo_name(new_var) := old_name) %>%
select(Year, !!new_var)
Но я не могу затем вызвать этот столбец в mutate и использовать значения
t1 %>%
rename( !! quo_name(new_var) := old_name) %>%
select(Year, !!new_var) %>%
mutate(test_var = (!! new_var))