如何在 R 中将数据框变量重命名为 x1、x2、...?

How to rename data frame variables as x1, x2, ... in R?

我知道有一个简单的解决方案,但我一直收到错误消息。鉴于此示例数据框:

y <- c(1,2,3)
a <- c(2,4,6)
b <- c(4,8,12)
c <- c(8,16,24)
z <- as.data.frame(cbind(y,a,b,c))
z
  y a  b  c
1 1 2  4  8
2 2 4  8 16
3 3 6 12 24

我想要一段自动代码,将第 2 列重命名为 x1,将第 3 列重命名为 x2,将第 3 列重命名为 x3。我尝试过:

for (i in 2:4){ x=colnames(z[i]); rename(z, c(x=paste("x",i,sep=""))) }

apply(z[,2:4], 2, function(x) rename(z, c(x=paste("x",i,sep="")))  )

但没有成功。非常感谢任何帮助!

你不需要循环

 names(z)[-1] <- paste0('x', 1:(ncol(z)-1))

编辑:添加了@Pierre Lafortune 的建议