R:dplyr - 按位置而不是名称重命名列名

时间:2015-04-12 05:18:13

标签: r dplyr

我想知道是否有一种方法可以按列的位置重命名列名,而不是按列名更改。

以下代码段显示了如何按名称进行更改。

suppressPackageStartupMessages(library(dplyr))

gd_url  <- "http://tiny.cc/gapminder"
gtbl  <- gd_url %>%
  read.delim %>%
  tbl_df

gtbl  <- gtbl %>% rename(life_exp = lifeExp, 
                         gdp_percap = gdpPercap)
gtbl

2 个答案:

答案 0 :(得分:17)

如果您希望坚持使用dplyr管道世界,则从dplyr 0.7.2开始,可以使用以下命名法按位置重命名:

使用原始示例:

gtbl  <- gtbl %>% rename("life_exp" = !!names(.[5]),
                         "gdp_percap" = !!names(.[6]))

关于挖掘旧帖子的问候。在找出这个替代解决方案之前,我遇到了类似的问题并查看了这个问题。

答案 1 :(得分:15)

更简单:您可以仅使用数字来重命名列。这有效:

df <- df %>% 
        rename(newNameForFirstColumn = 1, newNameForSecondColumn = 2)