作者:王先生 | 来源:互联网 | 2022-12-15 10:03
我希望这是一个简单的问题。我如何重命名带有后缀“ _2017”的数据集中的所有列标题名称,但前两个列标题为“ Name”和“ State”除外?我想用dplyr做到这一点。
1> Psidom..:
您可以使用辅助方法使用rename_at
和排除列vars
:
df <- data.frame(Name = c('a', 'b'), State = c('c', 'd'), col1 = 1:2, col2 = 3:4)
df
# Name State col1 col2
#1 a c 1 3
#2 b d 2 4
用硬编码名称排除:
df %>% rename_at(vars(-Name, -State), ~ paste0(., '_2017'))
# Name State col1_2017 col2_2017
#1 a c 1 3
#2 b d 2 4
按列位置排除:
df %>% rename_at(vars(-(1:2)), ~ paste0(., '_2017'))
# Name State col1_2017 col2_2017
#1 a c 1 3
#2 b d 2 4
按存储在变量中的列名排除:
to_exclude = c('Name', 'State')
df %>% rename_at(vars(-one_of(to_exclude)), ~ paste0(., '_2017'))
# Name State col1_2017 col2_2017
#1 a c 1 3
#2 b d 2 4