我想重命名large数据帧中的一些随机列,我想使用当前的列名,而不是索引.如果向数据中添加或删除列,列索引可能会更改,因此我认为使用现有的列名是一种更稳定的解决方案.

mydf = merge(df.1, df.2)
colnames(mydf)[which(colnames(mydf) == "MyName.1")] = "MyNewName"

我能简化这段代码吗?要么是最初的merge()次呼叫,要么只是第二行?"MyName.1"实际上是两个不同xts对象的xts merge的结果.

推荐答案

names(mydf)[names(mydf) == "MyName.1"] = "MyNewName" # 13 characters shorter. 

不过,最终可能需要替换向量.在这种情况下,使用%in%而不是==,并设置MyName.1作为与MyNewName长度相等的向量

R相关问答推荐

根据R中另一个数据集的顺序重新排序数据集的列

如何识别组内的行是否在同一列中具有值?

生成具有受控相关性的x和y

如何判断R中一列的值是否在所有其他列中重复?

如何使用R中的dhrr函数将李克特量表的因子列从长转换为宽?

如何修复R码的置换部分?

通过使用str_detect对具有相似字符串的组进行分组

从BRM预测价值

用关联字符串替换列名的元素

使用较长的查询提取具有部分匹配的列表中的较短目标,

如何写商,水平线,在一个单元格的表在R

使用data.table::fcase()而不是dplyr::case_When()时保持值

计算两列中满足特定条件连续行之间的平均值

如何在R中使用hmm TMB提前一步预测观察到的状态?

如何在ggplot2中创建多个y轴(每个变量一个)

为什么这个表格格罗布不打印?

如何在R中使用混合GAM模型只对固定的影响因素进行适当的预测?

R中时间间隔的大向量与参考时间间隔的相交

如果条件匹配,则使用Mariate粘贴列名

在生成打印的自定义函数中,可以通过变量将线型或 colored颜色 设置为NULL吗?