有数据。帧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'))