Ответ 1
Переименование объекта и имен столбцов внутри него состоит из двух этапов:
SPY <- GSPC # assign the object to the new name (creates a copy)
colnames(SPY) <- gsub("GSPC", "SPY", colnames(SPY)) # rename the column names
В противном случае функция getSymbols позволяет не назначать автоматически, в этом случае вы можете пропустить первый шаг (вам все равно придется переименовать столбцы).
SPY <- getSymbols("^GSPC", auto.assign=FALSE)
Комментарий от @backlin
R использует так называемую ленивую оценку. В результате, когда вы "копируете" SPY <- GSPC
вы фактически не выделяете новое пространство в памяти для SPY
. R знает, что объекты идентичны, и создает новую копию в памяти только в том случае, если один из них изменен (т.е. когда они больше не идентичны, например, когда вы изменяете имена столбцов в следующей строке). Итак, делая
SPY <- GSPC
rm(GSPC)
colnames(SPY) <- gsub("GSPC", "SPY", colnames(SPY))
вы никогда не копируете GSPC
а просто даете ему новое имя (SPY
), а затем говорите R забыть имя (GSPC
). Когда вы затем изменяете имена столбцов, вам не нужно создавать новую копию SPY
поскольку GSPC
больше не существует, что означает, что вы действительно переименовали объект без создания промежуточных копий.