【问题标题】:R: dplyr - Rename column name by position instead of nameR:dplyr - 按位置而不是名称重命名列名
【发布时间】:2015-06-17 15:15:25
【问题描述】:

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

下面的 sn-p 显示了如何按名称进行更改。

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

【问题讨论】:

  • 那么您希望如何进行重命名?目前还不太清楚您所采用的方法是什么。
  • 如果您选择某些列并更改名称,您可以执行select(gtbl, life_exp = 5) 之类的操作。
  • 这不是更容易吗names(gtbl)[5:6] &lt;- c('life_exp', 'gdp_percap')
  • @akrun 我也愿意。
  • rename() 强迫你使用名字是有原因的

标签: r dplyr


【解决方案1】:

简单得多:您只需使用数字即可重命名列。这有效:

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

【讨论】:

    【解决方案2】:

    如果您更喜欢停留在 dplyr 管道世界中,从 dplyr 0.7.2 开始,可以使用以下命名法按位置重命名:

    使用您的原始示例:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 2023-03-10
      • 2022-11-12
      • 2015-11-11
      • 2017-10-01
      • 1970-01-01
      • 2020-04-11
      相关资源
      最近更新 更多