我想重命名大的数据框的一些随机列,我想使用当前列名称,而不是索引。如果向数据添加或删除列,那么列索引可能会更改,所以我使用现有的列名称是更稳定的解决方案。 这是我现在有:命名的列重命名
mydf = merge(df.1, df.2)
colnames(mydf)[which(colnames(mydf) == "MyName.1")] = "MyNewName"
我可以简化这个代码,要么是原始merge()
来电或第二线? "MyName.1"
实际上是两个不同xts对象的xts merge
的结果。
你能提供一个小的可再生的数据与所需的输出设定? – Dason 2012-02-14 19:46:07
你不需要那里的'哪个! R在运算符[]中接受布尔值。 'colnames(mydf)[colnames(mydf)==“MyName.1”] =“MyNewName”'应该工作! – 2012-02-14 19:48:25
'names(mydf)[names(mydf)==“MyName.1”] =“MyNewName”'...约13个左右的字符缩短。虽然,在这种情况下你可能想要替换一个向量,但使用%而不是==。 – 2012-02-14 19:58:58