我想重命名数据框的一些随机列,并且我想使用当前列名,而不是索引。如果我向数据中添加或删除列,则列索引可能会更改,因此我认为使用现有列名是更稳定的解决方案。
这就是我现在所拥有的:

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.

虽然,您可能最终希望替换 vector 。在这种情况下,请使用%in%而不是==并将MyName.1设置为与MyNewName等长的 vector

关于r - 重命名由当前名称引用的多个数据框列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9283171/

10-11 06:22