我想重命名大的數據框的一些隨機列,我想使用當前列名稱,而不是索引。如果向數據添加或刪除列,那麼列索引可能會更改,所以我使用現有的列名稱是更穩定的解決方案。 這是我現在有:命名的列重命名
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