【问题标题】:How do I access coredata from each object in a matrix of xts zoo objects如何从 xts zoo 对象矩阵中的每个对象访问 coredata
【发布时间】:2019-01-03 15:01:25
【问题描述】:

我使用 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 zoo 对象的向量,格式如下:

(GBPUSD, USDSGD,...)

但是我只想知道费率,因为我只需要一个日期的费率,因此知道时间戳。

我尝试过像这样循环遍历向量:

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

但这只是返回货币对名称。

【问题讨论】:

    标签: r currency zoo


    【解决方案1】:

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

    【讨论】:

    • 粉碎了它。不错。
    猜你喜欢
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2023-03-25
    • 2021-11-12
    • 2012-08-10
    • 1970-01-01
    相关资源
    最近更新 更多