如何在 R 中一次重命名多列

-2 r dplyr data-cleaning

我有一个包含多年作为变量标题的数据框,其格式为:Y_1998、Y_1999 等,直至 2018 年。有什么方法可以在一行代码中重命名所有这些列,而不是对每个列使用重命名函数多变的?

小智 7

如果您的dplyr版本是>=1.0.0,那么您可以使用rename_with()选择帮助器之一(例如starts_with())来匹配列名称的模式。

library(tidyverse)

tibble(var1 = "a",
       Y_1999 = 1, Y_2000 = 0, Y_2001 = 1, Y_2002 = 0,
       some_other_var = "b") %>% 
  rename_with(.fn = ~ str_replace(.x, "Y_", "Year_"),
              .cols = starts_with("Y_"))
Run Code Online (Sandbox Code Playgroud)