2015-04-12 5 views
7

Я хочу знать, есть ли способ переименовать имена столбцов по положению столбца, а не по имени столбца.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 
+1

Так как бы вы хотели сделать переименование? Не совсем понятно, какой подход вы придерживаетесь. – A5C1D2H2I1M1N2O1R2T1

+0

Если вы выберете определенные столбцы и измените имена, вы можете сделать что-то вроде 'select (gtbl, life_exp = 5)'. – jazzurro

+3

Не было бы проще делать «имена» (gtbl) [5: 6] <- c ('life_exp', 'gdp_percap') ' – akrun

ответ

9

Если вы предпочитаете придерживаться в dplyr трубы-мире, по состоянию на dplyr 0.7.2 можно переименовать положением, используя следующую номенклатуру:

Используя свой оригинальный пример:

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

С уважением, для дноуглубительных работ в старшей должности. У меня была аналогичная проблема, и я рассмотрел этот вопрос, прежде чем выяснять это альтернативное решение.

Смежные вопросы