#r #dplyr #quosure
#r #dplyr #вопрос
Вопрос:
У меня есть фрейм данных, к которому я хотел бы запросить. Обратите внимание, что столбцы этого фрейма данных могут изменяться, а имена столбцов имеют spca. У меня есть функция, которую я хочу применить к столбцам фрейма данных. Я подумал, что мог бы программно выяснить, какие столбцы существуют, а затем использовать этот список столбцов, чтобы применить функцию к существующим столбцам.
Я смог выяснить, как это сделать, когда в именах столбцов нет пробелов: смотрите код ниже
library(tidyverse)
library(rlang)
col_names <- c("cyl","mpg","New_Var")
cc <- rlang::quos(col_names)
mtcars%>%mutate(New_Var=1)%>%select(!!!cc)
Но когда имена столбцов содержат пробелы, этот метод не работает, ниже приведен код, который я использовал:
col_names <- c("cyl","mpg","`New Var`")
cc <- rlang::quos(col_names)
mtcars%>%mutate(`New Var`=1)%>%select(!!!cc)
Есть ли способ выбрать столбцы, в названии которых есть пробелы, без изменения их имен?
Комментарии:
1. Когда у вас есть пробелы в именах, вам не нужно ничего делать по-другому. Попробуйте тот же код с
col_names <- c("cyl","mpg","New Var")
2. Ты потрясающий. Это сработало: D
Ответ №1:
Вам не нужно ничего делать по-другому для значений с пробелами. Например,
library(dplyr)
library(rlang)
col_names <- c("cyl","mpg","New Var")
cc <- quos(col_names)
mtcars %>% mutate(`New Var`=1) %>% select(!!!cc)
Также обратите внимание, что select
также принимает имена строк, так что это тоже работает :
mtcars%>% mutate(`New Var`=1) %>% select(col_names)