R dplyr::使用字符串变量重命名并选择

标签 r string dplyr rename

我正在尝试在数据框中选择变量的子集,然后在新数据框中重命名变量。我有很多需要重命名的变量。我在用

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/

相关文章:

java - 有没有办法连接字符串,每个字符串都有一个特定的周围字符串?

c++ - 构建正确的类

r - 传递标签以选择和返回服务器功能的值

r - 简单子(monad)集/汇总函数的 dplyr'ish 方法

r - 如何编写一个也接受字符输入的 NES 函数?

r - 如何在 R 中抑制 download.file() "trying URL..."消息?

r - 获取上周五的日期

r - 如何使用 R-base 在堆积条形图中标记百分比值

ruby - 我如何使用 Ruby 找到数组或字符串中每三个数字的乘积?

r - 如何正确安装和加载dplyr?