使用 R 中的 For 循环重命名具有索引的列

Renaming Columns with index with a For Loop in R

我写这篇文章 post 是为了征求一些有关循环代码以按索引重命名列的建议。

我有一个数据集,其中标度项列彼此相邻。不幸的是,它们的名字很奇怪。

我想以这种格式重命名每一列:SimRac1、SimRac2、SimRac3....等等。我知道列的位置(列号 30 到 37)。我知道这些标尺项目的排序方式使得它们可以从左到右按递增的顺序命名和编号。

我目前的代码有效,但效率不高。不同位置的其他秤也需要以类似的方式重命名。这将导致数十行代码。

见下面的代码。

names(Total)[30] <- "SimRac1"
names(Total)[31] <- "SimRac2"
names(Total)[32] <- "SimRac3"
names(Total)[33] <- "SimRac4"
names(Total)[34] <- "SimRac5"
names(Total)[35] <- "SimRac6"
names(Total)[36] <- "SimRac7"
names(Total)[37] <- "SimRac8"

我想循环这段代码,这样我只有一段代码可以完成这项工作。 我在想也许“for 循环”会有所帮助。 因此,下面的代码

for (i in Total[,30:37]){
names(Total)[i] <- "SimRac(1:8)"
}

不幸的是,这不起作用。这段代码运行没有错误,但它什么也没做。

请教。

在OP的代码中,“SimRac(1:8)”是一个常量。要使用动态名称,请使用 paste0。 我们这里不需要循环。我们可以使用向量化函数来创建名称,然后将名称分配给 names(Total)

的子集
names(Total)[30:37]<-paste0('SimRac', 1:8)