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

bnl4lu3b  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(97)

我写这篇文章是为了征求一些关于循环代码按索引重命名列的建议。
我有一个数据集,它的缩放项列彼此相邻。不幸的是,它们的名称很奇怪。
我想以这种格式重新命名每个列: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)"
}

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

djmepvbi

djmepvbi1#

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

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

相关问题