Quiero cambiar el nombre de algunas columnas aleatorias de un gran marco de datos y quiero utilizar los nombres de las columnas actuales, no los índices. Los índices de columna pueden cambiar si agrego o quito columnas a los datos, así que me imagino que usar los nombres de columna existentes es una solución más estable. Esto es lo que tengo ahora:Columnas con nombre Cambio de nombre
mydf = merge(df.1, df.2)
colnames(mydf)[which(colnames(mydf) == "MyName.1")] = "MyNewName"
¿Puedo simplificar el código, ya sea el merge()
llamada original o simplemente la segunda línea? "MyName.1"
es en realidad el resultado de un xts merge
de dos objetos xts diferentes.
¿Puede dar un pequeño conjunto de datos reproducibles con la salida deseada? – Dason
¡No necesitas el 'que' hay! R acepta booleano en el operador []. 'colnames (mydf) [colnames (mydf) ==" MyName.1 "] =" MyNewName "' debería funcionar! –
'names (mydf) [names (mydf) ==" MyName.1 "] =" MyNewName "' ... aproximadamente 13 o menos caracteres más cortos. Aunque, es posible que desee reemplazar un vector en ese caso, use% en% en lugar de ==. –