如何从XTS Zoo对象矩阵中的每个对象访问coredata

时间:2019-01-03 15:01:25

标签: r currency zoo

我使用R中Quantmod包中的getFX函数从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 :(得分:0)

在这种情况下,如果您只检索一个日期的数据,您可以做的事情就是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等访问列表。