在R dplyr包中,一个关于函数rename _with()的问题



有数据。帧ori_df,我想用rename_with()更改列名,但失败了。有人能帮忙吗?谢谢

library(tidyverse)
ori_df <- data.frame(my_item=c('a','b','c'),
'y2021'=c(1,4,5),
'y2022'=c(9,8,7))
#blow code show error message : Error: Can't convert a character vector to function
ori_df_final <- ori_df %>% rename_with(.,c('item','2021','2022'))

要使用rename_with,需要提供一个函数。在这种情况下,我们可以只传递一个新名称的字符向量来替换所有列名。如果您有一个较大的数据帧,并且只想更改一些名称,那么您可以使用dplyr(例如,c(my_item, y2021, y2022)而不是everything()(正常选择这些名称。

library(dplyr)
ori_df %>% 
rename_with(~ c('item','2021','2022'), everything())
#  item 2021 2022
#1    a    1    9
#2    b    4    8
#3    c    5    7

如果要替换所有列,则everything().cols参数的默认值,因此您可以只写:

ori_df %>% 
rename_with(~c('item','2021','2022'))

相关内容

  • 没有找到相关文章

最新更新