我想知道是否有一种方法可以按列的位置重命名列名,而不是按列名更改.
下面的代码段显示了如何按名称更改.
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
Run Code Online (Sandbox Code Playgroud)
Max*_*ron 27
更简单:只需使用数字即可重命名列.这有效:
df <- df %>%
rename(newNameForFirstColumn = 1, newNameForSecondColumn = 2)
Run Code Online (Sandbox Code Playgroud)
小智 18
如果您希望坚持使用dplyr管道世界,那么从dplyr 0.7.2开始,可以使用以下命名法按位置重命名:
使用您的原始示例:
gtbl <- gtbl %>% rename("life_exp" = !!names(.[5]),
"gdp_percap" = !!names(.[6]))
Run Code Online (Sandbox Code Playgroud)
关于挖掘旧帖子的问候.在找出这个替代解决方案之前,我遇到了类似的问题并查看了这个问题.