问题描述
我有一个要查询的数据框。请注意,该数据框的列可能会更改,并且列名带有空格。我有一个要应用于数据框列的函数。我想我可以以编程方式找出存在的列,然后使用该列列表将功能应用于存在的列。
我能够弄清楚当列名没有空格时该怎么做:请参见下面的代码
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","`New Var`")
cc <- rlang::quos(col_names)
mtcars%>%mutate(`New Var`=1)%>%select(!!!cc)
解决方法
对于带空格的值,您无需做任何其他操作。例如,
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)