使用 R 中的 dplyr 重命名具有系列索引的多个列

Rename multiple columns with series index using dplyr in R

我的数据框是这样的

X0 <- c(11,2,3,4)
X1 <- c(10,2,3,4)
X2 <- c(8,2,3,4)
X3 <- c(4,6,3,4)
test <- data.frame(X0,X1,X2,X3)

  X0 X1 X2 X3
1 11 10  8  4
2  2  2  2  6
3  3  3  3  3
4  4  4  4  4

我想使用字符“t”和 1:3 中的系列重命名前三列。 我希望我的数据框看起来像这样

  t0 t1 t2 X3
1 11 10  8  4
2  2  2  2  6
3  3  3  3  3
4  4  4  4  4

编辑 它是这样工作的

test %>%
  rename_at(vars(X0:X2), list(~paste0("t", 0:2)))

这是一个 data.table 选项 setnames

setnames(setDT(test),1:3,function(v) gsub("X","t",v))

或使用rename_with

library(dplyr)
library(stringr)
test %>% 
  rename_with(~ str_c('t', 0:2), X0:X2)