R — Переименовать все заголовки столбцов справа от соответствующей строки в заголовке столбца

#r #tidyverse #rename

#r #tidyverse #переименовать

Вопрос:

Я импортировал файлы XLSX, в которых заголовок каждого столбца изначально отформатирован как «[idNo] nameNo». Когда я импортирую xlsx с помощью read_excel, имя каждого столбца теперь:

 "[id1]nname1"    "[id2]nname2"     "[id3]nname3" ......... "[idn]nnamen
  

Как я могу переименовать все столбцы, посмотрев справа от ‘ n’ и сохранив только ‘nameNo’:

 "name1"    "name2"    "name3" ....... "namen"
  

Заранее спасибо

Ответ №1:

Вы могли бы использовать sub для удаления нежелательного содержимого для базовой опции R.:

 names(df) <- sub("^.*n", "", names(df))
  

Использование dplyr библиотеки:

 df <- df %>% rename_with(~sub(".*n", "", .))
  

Комментарии:

1. Большое вам спасибо! (в первой строке отсутствует закрывающая скобка)

Ответ №2:

Вы можете удалить все, пока 'n'

 names(df) <- sub('.*n', '', names(df))
  

В dplyr :

 library(dplyr)
df <- df %>% rename_with(~sub('.*n', '', .))