根据其他列的条件重命名列 (Rstudio)

Renaming columns based on condition about other columns (Rstudio)

当我上传我的 xlsx 数据集时,列如下:

在R中变成这样:

因此我想用之前的列名替换 X... 模式并在末尾添加一个 IR

我现在有这个:

data9_1 %>%
   rename_at(vars(starts_with("X")), ~ str_c(.,"IR")) 

但我不知道如何将条件放在前面的列中?

谢谢

实现所需结果的基本 R 方法可能如下所示:

data9_1 <- data.frame(
  A = 1, X18 = 2, B = 3, X19 = 4
)

to_rename <- grep("^X", names(data9_1))
names(data9_1)[to_rename] <- paste0(names(data9_1)[to_rename - 1], "IR")

data9_1
#>   A AIR B BIR
#> 1 1   2 3   4