【问题标题】:Merge two XTS objects one with logicals合并两个 XTS 对象之一与逻辑
【发布时间】:2018-09-25 22:02:37
【问题描述】:

我有两个 XTS 对象,两个维度相同,一个带有逻辑运算符 (TRUE/FALSE),另一个带有整数。我正在尝试对整数进行子集化,以仅显示逻辑运算符 XTS 对象为 TRUE 的数据点。

XTS_逻辑

DATE       Col1      Col2
20170630   TRUE      FALSE
20170731   FALSE     TRUE
20170831   TRUE      TRUE

XTS_整数

DATE       Col1      Col2
20170630    5         6
20170731    2         3
20170831    5         9

XTS 期望的结果

DATE       Col1      Col2
20170630    5         NA
20170731    NA        3
20170831    5         9

【问题讨论】:

    标签: r xts


    【解决方案1】:

    您可以利用 xts 对象中的数据是矩阵这一事实。所以你可以只使用矩阵计算并将 XTS_logical 与 XTS_integers 相乘

    XTS_outcome <- XTS_logical * XTS_integers
    XTS_outcome 
               Col1 Col2
    2017-06-30    5    0
    2017-07-31    0    3
    2017-08-31    5    9
    

    如果您希望 0 作为 NA,您可以使用 XTS_outcome[XTS_outcome == 0] &lt;- NA

    数据:

    XTS_logical <- structure(c(TRUE, FALSE, TRUE, FALSE, TRUE, TRUE), .Dim = 3:2, .Dimnames = list(
        NULL, c("Col1", "Col2")), index = structure(c(1498780800, 
    1501459200, 1504137600), tzone = "UTC", tclass = "Date"), class = c("xts", 
    "zoo"), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC")
    
    XTS_integers <- structure(c(5L, 2L, 5L, 6L, 3L, 9L), .Dim = 3:2, .Dimnames = list(
        NULL, c("Col1", "Col2")), index = structure(c(1498780800, 
    1501459200, 1504137600), tzone = "UTC", tclass = "Date"), class = c("xts", 
    "zoo"), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC")
    

    【讨论】:

      【解决方案2】:

      或者直接使用XTS_logical作为要更改的单元格的索引。

      XTS_integers[!XTS_logical] <- NA
      #            Col1 Col2
      # 2017-06-30    5   NA
      # 2017-07-31   NA    3
      # 2017-08-31    5    9
      

      这样,原来在XTS_integers 中的任何0s 都不会更改为NA

      【讨论】:

        猜你喜欢
        • 2012-08-19
        • 1970-01-01
        • 2021-11-23
        • 2016-05-31
        • 2012-08-15
        • 2017-09-16
        • 2014-05-07
        • 1970-01-01
        • 2017-12-08
        相关资源
        最近更新 更多