Desidero rinominare alcune colonne casuali di una cornice dati grande e desidero utilizzare i nomi delle colonne correnti, non gli indici. Gli indici delle colonne potrebbero cambiare se aggiungo o rimuova colonne nei dati, quindi immagino che l'utilizzo dei nomi di colonna esistenti sia una soluzione più stabile. Questo è quello che ho adesso:Rinominare le colonne denominate
mydf = merge(df.1, df.2)
colnames(mydf)[which(colnames(mydf) == "MyName.1")] = "MyNewName"
Posso semplificare questo codice, sia il merge()
chiamata originale o solo la seconda linea? "MyName.1"
è in realtà il risultato di una xts merge
di due diversi oggetti xts.
può fornire un piccolo dati riproducibili impostati con l'output desiderato? – Dason
Non è necessario il 'which' there! R accetta booleano nell'operatore []. 'colnames (mydf) [colnames (mydf) ==" MyName.1 "] =" MyNewName "' dovrebbe funzionare! –
'names (mydf) [names (mydf) ==" MyName.1 "] =" MyNewName "' ... circa 13 caratteri in meno. Sebbene, potresti voler sostituire un vettore in quel caso, usa% in% invece di ==. –