我正在尝试在数据框中选择变量的子集,然后在新数据框中重命名变量。我有很多需要重命名的变量。我在用
dplyr::select
dplyr::select_
由于我有许多要重命名的变量,因此我在考虑是否应该使用字符串变量来重命名,但是不确定是否可以这样做?使用字符串可以帮助我管理新名称旧名称映射。这是一个例子
dplyr::select
library(dplyr)
library(nycflights13)
set.seed(123)
data <- sample_n(flights, 3)
select(data,yr=year,mon=month,deptime=dep_time)
问题是如何在字符串中传递此参数,即newvariable = oldvariable参数,然后使用
dplyr::select_
col_vector <- c("year", "month", "dep_time")
select_(data, .dots = col_vector)
我想到的字符串是:
rename_vector <- c("yr=year","mon=month","deptime=dep_time")
任何建议都将非常有帮助。
最佳答案
除了使用向量,还可以将列表传递给.dots
中的dplyr::select_
,其中名称是新列名称,旧名称是字符。
> rename_list <- list(sepal_length = "Sepal.Length", sepal_width = "Sepal.Width")
> iris %>% tbl_df %>% select_(.dots = rename_list)
Source: local data frame [150 x 2]
sepal_length sepal_width
(dbl) (dbl)
1 5.1 3.5
2 4.9 3.0
3 4.7 3.2
4 4.6 3.1
5 5.0 3.6
6 5.4 3.9
7 4.6 3.4
8 5.0 3.4
9 4.4 2.9
10 4.9 3.1
.. ... ...
关于R dplyr::使用字符串变量重命名并选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36520813/