如何在 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 的建议
我知道有一个简单的解决方案,但我一直收到错误消息。鉴于此示例数据框:
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 的建议