当列名有空格时以编程方式从数据框中选择列

Selecting columns from dataframe programmatically when column names have spaces

我有一个要查询的数据框。请注意,该数据框的列可能会更改,并且列名具有 spcaes。我有一个要应用于数据框列的函数。我想我可以通过编程找出存在的列,然后使用该列列表将函数应用于存在的列。

当列名没有空格时,我能够弄清楚如何做到这一点:请参阅下面的代码

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)

有没有办法在不更改名称的情况下 select 名称中包含空格的列?

对于带空格的值,您无需执行任何不同的操作。例如,

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)