Как получить доступ к coredata от каждого объекта в матрице объектов зоопарка XTS - PullRequest
0 голосов
/ 03 января 2019

Я использовал функцию getFX из пакета Quantmod в R для генерации вектора тарифов из Oanda, каждый в формате xts zoo.

currency_pairs <- c("GBP/USD", "USD/SGD")
rates <- getFX(currency_pairs, from="2019/01/01", to="2019/01/01"

Возвращает вектор объектов зоопарка xts в виде:

(GBPUSD, USDSGD,...)

Однако я хотел бы иметь только тарифы, поскольку мне требуются тарифы только на одну дату и, следовательно, я знаю метку времени.

Я попытался зациклить вектор так:

for (i in 1:length(rates){
    rates[i] <- coredata(rates[i])
    }

но это просто возвращает имя валютной пары.

1 Ответ

0 голосов
/ 03 января 2019

То, что вы могли бы сделать в этом случае, если вы извлекаете данные только за одну дату, это использовать для sapply, например:

library(quantmod)

currency_pairs <- c("GBP/USD", "USD/SGD")

# for 1 date this will return a named vector otherwise use lapply
rates <- sapply(currency_pairs,  getFX, from="2019/01/01", to="2019/01/01", auto.assign = FALSE)
rates

 GBP/USD  USD/SGD 
1.275455 1.362920 

Обычно я бы предложил использовать lapply для извлечения всех валют вбольшой список, а затем получить доступ к списку с помощью lapply / mapply / Map / purrr :: map и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...