Estoy tratando de fusionar una lista de cierres ajustados de una multitud de firmas para mi investigación sobre ESG, en relación con el riesgo/recompensa. Ninguna de las empresas parece tener problemas, excepto las acciones de Berkshire Hathaway (BRK-A).
El código es el siguiente:
library(quantmod)
library(PerformanceAnalytics)
maxDate <- "2017-06-23"
minDate <- "2020-12-31"
average <- c("BABA", "BRK-A", "V", "JNJ", "WMT", "JPM", "MA", "PG", "UNH", "DIS", "BAC", "VZ", "NKE", "NVS", "TM", "MRK", "T", "ABT", "ORCL", "ABBV", "TMO", "XOM", "ACN", "BHP", "CVX")
weights <- c(0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04)
getSymbols(average, from=maxDate, to=minDate)
# IMPORTANT: wait 30 seconds to let the source function finish! #
Port.prices <- na.omit(merge(Ad(BABA), Ad(BRK-A), Ad(V), Ad(JNJ), Ad(WMT), Ad(JPM), Ad(MA), Ad(PG), Ad(UNH), Ad(DIS), Ad(BAC), Ad(VZ), Ad(NKE), Ad(NVS), Ad(TM), Ad(MRK), Ad(T), Ad(ABT), Ad(ORCL), Ad(ABBV), Ad(TMO), Ad(XOM), Ad(ACN), Ad(BHP), Ad(CVX)))
Port.returns <- ROC(Port.prices, type="discrete")[-1,]
colnames(Port.returns) <- average
¿Alguien tiene una solución (preferiblemente sencilla) para este problema? ¡Todavía soy un novato cuando se trata de R, así que alguna explicación sería genial!
Gracias de antemano.
Philip
2 votos
Pruebe a sustituir BRK-A por BRKA y Ad(BRK-A) por Ad(BRKA) respectivamente. Es posible que al analizador léxico no le guste el carácter menos.
0 votos
Hola, señor Rodionov, ¡gracias por su respuesta! Lamentablemente, la eliminación del "-" en las funciones average/getSymbols o/y merge no funcionó. Sin embargo, la respuesta de @pleb sí funcionó y el problema está resuelto. Gracias por comentar.