我写这篇文章是为了征求一些关于循环代码按索引重命名列的建议。
我有一个数据集,它的缩放项列彼此相邻。不幸的是,它们的名称很奇怪。
我想以这种格式重新命名每个列: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)"
}
不幸的是,这并不起作用。这段代码运行时没有错误,但它什么也不做。
做建议。
1条答案
按热度按时间djmepvbi1#
在OP的代码中,“SimRac(1:8)”是一个常量。要有动态名称,请使用
paste0
。这里不需要循环。我们可以使用向量化函数来创建名称,然后将名称分配给names(Total)
的子集