r - 在R中使用For循环重命名具有索引的列
问题描述
我写这篇文章是为了征求一些关于循环代码按索引重命名列的建议。
我有一个数据集,其中比例项列彼此相邻。不幸的是,它们的名字很奇怪。
我想以这种格式重命名每一列: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)
推荐阅读
- docker - 来自守护程序的错误响应:构建容器的拉取访问被拒绝,存储库不存在或可能需要“docker login”
- javascript - 如何测试帖子
- ios - 当点击导航按钮太快时反应原生崩溃
- javascript - 使用 javascript 检查来自 forEach 响应的所有条件的更有效方法
- ios - 如何在 React Native 中显示数学公式?
- python-3.x - 如何向 argparse 输入特定参数?
- python-3.x - 在基于事件的微服务之前实现 RESTful API
- java - E/RecyclerView 出错:未连接适配器;跳过布局
- java - 为什么这个解决方案是反向整数(Leet Code)O((log10(n))?
- java - 如何在百里香中迭代输入值