我知道这是一个简单的解决方案,但我不断收到错误消息。鉴于此示例数据框:
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=""))) )
但没有成功。非常感谢任何帮助!
答案 0 :(得分:3)
您不需要循环
names(z)[-1] <- paste0('x', 1:(ncol(z)-1))
编辑:添加了@Pierre Lafortune的建议