studio - ¿Cómo cambio el nombre de un objeto R?
recodificar variables en r (1)
Cambiar el nombre de un objeto y sus nombres es un proceso de dos pasos:
SPY <- GSPC # assign the object to the new name (creates a copy)
colnames(SPY) <- gsub("GSPC", "SPY", colnames(SPY)) # rename the column names
De lo contrario, la función getSymbols le permite no asignarse automáticamente, en cuyo caso podría omitir el primer paso (aún necesitará cambiar el nombre de las columnas).
SPY <- getSymbols("^GSPC", auto.assign=FALSE)
Comentario de @backlin
R emplea la llamada evaluación perezosa . Un efecto de eso es que cuando "copia" SPY <- GSPC
no asigna realmente nuevo espacio en la memoria para SPY
. R sabe que los objetos son idénticos y solo hace una nueva copia en la memoria si uno de ellos se modifica ( es decir, cuando ya no son idénticos, por ejemplo , cuando cambia los nombres de columna en la siguiente línea). Asi haciendo
SPY <- GSPC
rm(GSPC)
colnames(SPY) <- gsub("GSPC", "SPY", colnames(SPY))
nunca copia realmente el GSPC
simplemente le da un nuevo nombre ( SPY
) y luego le dice a R que olvide el primer nombre ( GSPC
). Cuando luego cambia los nombres de columna, no necesita crear una nueva copia de SPY
ya que GSPC
ya no existe, lo que significa que realmente ha cambiado el nombre del objeto sin crear copias intermedias.
Estoy usando el paquete quantmod para importar datos de series financieras de Yahoo.
library(quantmod)
getSymbols("^GSPC")
[1] "GSPC"
Me gustaría cambiar el nombre del objeto "GSPC" a "SPX". He intentado la función de cambio de nombre en el paquete de remodelación, pero solo cambia los nombres de las variables. El objeto "GSPC" tiene vectores GSPC.Open, GSPC.High, etc. Me gustaría que mi cambio de nombre de "GSPC" a "SPX" también cambie GSPC.Open a SPX.Open y así sucesivamente.