删除数据框中所有列名的字符

remove character for all column names in a data frame

我有一个大数据框。我正在尝试从数据框的变量名称中删除 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

如果我们只需要删除 '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))