Выбор столбцов из фрейма данных программно, когда имена столбцов содержат пробелы

#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)