当列名称包含空格时,以编程方式从数据框中选择列

问题描述

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

我能够弄清楚当列名没有空格时该怎么做:请参见下面的代码

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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...