Вы можете использовать rename_at
:
library(dplyr)
df %>% rename_at(vars(starts_with('S')), ~paste0('common_name_', seq_along(.)))
Используя базу R, мы можем использовать startsWith
:
cols <- startsWith(names(df), 'S')
df[cols] <- paste0('common_name_', seq_len(sum(cols)))
Или с grep
:
cols <- grep('^S', names(df))
df[cols] <- paste0('common_name_', seq_along(cols))