удалите символы для всех имен столбцов во фрейме данных

#r #tidyverse #rename #stringr

Вопрос:

У меня большой фрейм данных. Я пытаюсь удалить v символ из имен переменных фрейма данных

 df <- tibble(q_ve5 = 1:2,
                 q_f_1v = 3:4,
                 q_vf_2 = 3:4,
                 q_e6 = 5:6,
                 q_ev8 = 5:6)
 

Я попробовал это. Похоже, мой шаблон регулярного выражения неверен

 df %>% 
  rename_all(~ str_remove(., "\v\d $"))
 

Мои желаемые имена коллов:

 q_e5 q_f_1 q_f_2  q_e6 q_e8
 

Ответ №1:

Если нам нужно удалить только «v», одна из нескольких цифр ( \d ) в конце ( $ ) не нужна, так как ожидаемый результат также удаляет » v «из первого столбца «q_ve5»

 library(dplyr)
library(stringr)
df %>% 
    rename_with(~ str_remove(., "v"), everything())
 

-выход

 # A tibble: 2 × 5
   q_e5 q_f_1 q_f_2  q_e6  q_e8
  <int> <int> <int> <int> <int>
1     1     3     3     5     5
2     2     4     4     6     6
 

Или без каких-либо упаковок

 names(df) <- sub("v", "", names(df))