r - 重复唯一的列名
问题描述
我有一个包含 9 列(V1、V2....V9)的数据集。我想标记每一列:Cat_1、Mouse_1、Chicken_1,用“_”分隔的唯一 ID 号重复这些名称。例如,从第四列开始 - Cat_2、Mouse_2、Chicken_2 等等。如何才能做到这一点?
解决方案
我们可以用 来创建一个分组索引gl
,用于paste
连接动物名称的向量并将其分配回数据集
names(df1) <- paste0(c("Cat_", "Mouse_", "Chicken_"),
as.integer(gl(ncol(df1), 3, ncol(df1))))
输出
df1
# Cat_1 Mouse_1 Chicken_1 Cat_2 Mouse_2 Chicken_2 Cat_3 Mouse_3 Chicken_3
#1 7 3 9 8 8 1 3 7 2
#2 3 8 8 1 2 5 1 1 4
#3 8 6 7 5 1 4 3 6 3
#4 7 9 8 5 5 6 8 7 6
#5 2 4 1 5 2 6 6 1 3
或另一种选择make.unique
是rep
names(df1) <- make.unique(rep(c("Cat", "Mouse", "Chicken"),
length.out = ncol(df1)))
注意:两种解决方案都适用于任意数量的列
数据
set.seed(24)
df1 <- as.data.frame(matrix(sample(1:9, 9 *5, replace = TRUE), ncol = 9))
推荐阅读
- limit - Arango DB 查询限制不能超过 1000?
- python - 使用 Rhino Grasshopper Python 循环浏览选项
- python-3.x - 在 scipy 优化最小化中忽略了终止容差
- maven - mvn 版本:显示插件更新 - 结构化输出
- docusignapi - 签署文档后,可以使用docusignapi在netsuite中创建实体吗?
- excel - Excel:从序列日期到通用编号的 VLOOKUP
- javascript - 带有数组的过滤器对象无法使用 javascript
- d3.js - 使用 .data() 函数迭代每个第 n 个数据成员
- sql - 用值替换模式
- reactjs - TypeScript:“Window & typeof globalThis”上不存在属性“X”:使用“declare global”的建议解决方案给了我错误