【问题标题】:Merge second columns in different xts objects contained in a list合并列表中包含的不同 xts 对象中的第二列
【发布时间】:2018-09-13 12:52:37
【问题描述】:

我是 R 编程新手,我正在尝试处理财务数据。目前我已经构建了多个 xts 对象,其中包含每天的收盘价、最高价、开盘价和最低价,并且我将多个 xts 对象存储在一个列表(称为数据)中,以便我可以轻松访问它们。

现在我想创建一个更大的 xts 对象,其中仅包含列表中所有 xts 对象的“收盘价”(可能有不同的日期,在这种情况下,NA 将是输出)

我尝试过使用 apply 函数,但无济于事。

sapply(Data,function(x) merge(x,"[[", [,"CLOSE"]))

代码无法编译并引发错误,但我认为它应该像这样工作。非常感谢任何帮助。谢谢

【问题讨论】:

    标签: r list apply xts


    【解决方案1】:

    您可以在Reduce 中使用merge

    # Sample data
    set.seed(2018);
    dates <- seq(as.Date("2018/01/01"), by = "day", length.out = 5);
    Data <- lapply(1:5, function(x)
        xts(x = data.frame(Close = rnorm(5), High = rnorm(5)), order.by = dates))
    
    # Merge
    Reduce(function(x, y) merge(x, y, all = TRUE), lapply(Data, function(x) x[, "Close"]));
    #                 Close    Close.1    Close.2    Close.3    Close.4
    #2018-01-01 -0.42298398 -0.6430347  1.2638637 -0.2284119 -0.3594423
    #2018-01-02 -1.54987816 -1.0300287  0.2501979  1.1786797 -1.2995363
    #2018-01-03 -0.06442932  0.7124813  0.2581954 -0.2662727 -0.8698701
    #2018-01-04  0.27088135 -0.4457721  1.7855342  0.5281408  1.0543623
    #2018-01-05  1.73528367  0.2489796 -1.2197058 -1.7686592 -0.1486396
    

    【讨论】:

    • @RK01 如果这回答了您的问题,请通过设置解决方案旁边的复选标记来关闭问题。
    猜你喜欢
    • 2022-01-25
    • 2023-03-22
    • 2019-02-20
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    相关资源
    最近更新 更多