如何通过添加前缀仅重命名data.frame中的某些列名称?

xia*_*dai 2 r

我有一个这样的data.frame

df = data.frame(
  do_not_rename = 1:3,
  rename1 = 1:3,
  rename2 = 1:3)
Run Code Online (Sandbox Code Playgroud)

并假设我只想通过在前面添加“完成” "rename"来重命名以开头的对象"finished_renamex"

我怎么做?想象一下,如果我有数千个变量。

A. *_*man 5

使用dplyr::rename_atstart_with帮助

library(dplyr)
df %>% rename_at(vars(starts_with('rename')), ~paste0('finished_',.))

  do_not_rename finished_rename1 finished_rename2
1             1                1                1
2             2                2                2
3             3                3                3
Run Code Online (Sandbox Code Playgroud)

使用基数R

colnames(df)[grep('^rename',names(df))] <- paste0('finished_',grep('^rename',names(df), value = TRUE))
Run Code Online (Sandbox Code Playgroud)