#r
Вопрос:
Привет.
Я пытаюсь поместить вектор цен в широкий фрейм данных, который внутренне соединен определенным столбцом.
Здесь я использовал BatchGetSymbols, который отображает цены в длинном фрейме данных, очистил его, а затем попытался разделить его по названию тикера.
Это дало мне список. Затем я попытался объединить все фреймы данных в этом списке по дате.
tickers.tech = c("AAPL", "GPRO", "HEAR", "IRBT", "LPL", "SONO", "VUZI")
ohlc = BatchGetSymbols(tickers.tech,first.date="2018-01-01")[[2]]
test = ohlc %>% select(ticker, ref.date, ret.adjusted.prices) %>% na.omit()
x = split(test,test$ticker)
t1 = plyr::join_all(x,by="ref.date")
Тем не менее, это оставило меня с:
Я сейчас пытаюсь переименовать соответствующие столбцы «скорректированные цены» с соответствующим тикером.ie.aapl. ret, gpro. ret и т. Д.
Я вполне уверен, что решение моей проблемы придет до этого момента, надеясь на некоторую помощь. Ищу надежное решение, так как я собираюсь делать это с другими секторами с разной длиной. Спасибо!
Ответ №1:
Если я правильно понимаю, ожидаемый результат преобразуется из длинного в широкий формат, где строки идентифицируются ref.date
, в то время как столбцы дают возвращаемое значение для каждого тикера.
Это мое предложение с использованием моего любимого набора инструментов:
library(BatchGetSymbols)
library(data.table)
library(magrittr)
ohlc <- BatchGetSymbols(tickers.tech, first.date = "2018-01-01")[[2]]
ohlc %>%
na.omit() %>%
setDT() %>%
dcast(ref.date ~ paste0(ticker, ".ret"), value.var = "ret.adjusted.prices")
ref.date AAPL.ret GPRO.ret HEAR.ret IRBT.ret LPL.ret SONO.ret VUZI.ret 1: 2018-01-03 -0.0001740738 0.0067204301 -0.029213483 0.036704158 0.0262225372 NA 0.000000000 2: 2018-01-04 0.0046451241 0.0106809079 0.030092593 -0.025529901 -0.0131215470 NA 0.023809524 3: 2018-01-05 0.0113852273 -0.0066050198 0.022471910 0.013346540 -0.0027991603 NA 0.186046512 4: 2018-01-08 -0.0037143326 -0.1276595745 0.006593407 -0.002682939 0.0007017544 NA 0.124183007 5: 2018-01-09 -0.0001144906 -0.0594512195 -0.028384279 -0.007459049 -0.0098176718 NA 0.017441860 --- 869: 2021-06-16 0.0039339325 -0.0154471545 0.004160943 0.007272696 -0.0178217822 0.002030133 0.016235780 870: 2021-06-17 0.0126008381 -0.0206440958 -0.005524889 -0.016193915 0.0463709677 -0.027785790 -0.037869822 871: 2021-06-18 -0.0100917070 -0.0379426644 -0.083611056 -0.003984032 0.0163776493 -0.016076243 -0.031365314 872: 2021-06-21 0.0141039085 0.0131463628 0.006971779 -0.015473695 0.0265402844 0.036308655 0.023492127 873: 2021-06-22 0.0126983595 -0.0008650519 -0.050571943 -0.014220058 -0.0073868883 0.000000000 0.001240571