Я хотел бы вызвать значение переменной динамически в цикле.Вот пример проблемы.Я новичок в Tidyverse и не очень хорошо разбираюсь в кавычках и кавычках.
library (tidyverse)
mtcars.df <- mtcars
mtcars.df <- mtcars.df %>% rownames_to_column( var = "Car")
temp.df <- mtcars %>% select(mpg, cyl, disp)
temp.df <- temp.df %>% rownames_to_column( var = "Car")
sample.name.temp <- "mpg_temp"
sample.name <- unlist(strsplit(as.character(sample.name.temp), '_', fixed = TRUE))[1]
names (temp.df)[2] <- paste0("DUM_", sample.name)
temp.name <- paste0("DUM_", sample.name)
mtcars.join <- full_join(mtcars.df, temp.df, by = c("cyl", "disp", "Car"))
Это дает желаемый результат:
mtcars.join <- mtcars.join %>% mutate (DUM_mpg = case_when(
mpg <= 20 ~ 0,
TRUE ~ mpg
))
Однако, как отмечено выше, я использую это в цикле инеобходимо вызвать имена переменных: temp.name
и sample.name
динамически в цикле.Ниже приведены мои неудачные попытки.
mtcars.join <- mtcars.join %>% mutate (!!!temp.name = case_when(
!!!sample.name <= 20 ~ 0,
TRUE ~ !!!temp.name
))
mtcars.join <- mtcars.join %>% mutate (!!!rlang::syms(temp.name) = case_when(
!!!rlang::syms(sample.name) <= 20 ~ 0,
TRUE ~ !!!rlang::syms(temp.name)
))
mtcars.join <- mtcars.join %>% mutate (!!!rlang::syms(temp.name) = case_when(
!!!rlang::syms(sample.name) <= 20 ~ 0,
TRUE ~ !!!rlang::syms(temp.name)
))
mtcars.join <- mtcars.join %>% mutate (!!temp.name = case_when(
!!sample.name <= 20 ~ 0,
TRUE ~ !!temp.name
))
mtcars.join <- mtcars.join %>% mutate (mtcars.join[[temp.name]] = case_when(
mtcars.join [[sample.name]] <= 20 ~ 0,
TRUE ~ mtcars.join [[temp.name]]
))
Спасибо за помощь.