如何在R?

时间:2015-07-09 18:03:33

标签: r for-loop rename

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

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="")))  )

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

1 个答案:

答案 0 :(得分:3)

您不需要循环

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

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