【问题标题】:Filter XTS table based on date from a vector根据向量中的日期过滤 XTS 表
【发布时间】:2020-08-26 05:58:59
【问题描述】:

我有一个XTS 表,其中有几个不正确的数据。我知道如何在 data.frame 中过滤日期,但在 XTS 中不知道。我想删除 SHCOMP xts 表中存在于 Wrong.Days 向量中的所有天数:

SHCOMP["2020-01-15/2020-02-05"]
           SHCOMP.Open SHCOMP.High SHCOMP.Low SHCOMP.Close SHCOMP.Return
2020-01-15    3103.175    3107.943   3082.042     3090.038 -0.0054016647
2020-01-16    3095.734    3096.372   3070.884     3074.081 -0.0051640142
2020-01-17    3081.464    3091.952   3067.252     3075.496  0.0004603002
2020-01-20    3082.113    3096.311   3070.480     3095.787  0.0065976350
2020-01-21    3085.790    3085.790   3051.230     3052.142 -0.0140981922
2020-01-22    3038.487    3069.253   3006.268     3060.754  0.0028216249
2020-01-23    3037.952    3045.041   2955.346     2976.528 -0.0275180560
2020-01-24    3037.952    3045.041   2955.346     2976.528  0.0000000000
2020-01-27    3037.952    3045.041   2955.346     2976.528  0.0000000000
2020-01-28    3037.952    3045.041   2955.346     2976.528  0.0000000000
2020-01-29    3037.952    3045.041   2955.346     2976.528  0.0000000000
2020-01-30    3037.952    3045.041   2955.346     2976.528  0.0000000000
2020-01-31    3037.952    3045.041   2955.346     2976.528  0.0000000000
2020-02-03    2716.698    2766.577   2716.698     2746.606 -0.0772450318
2020-02-04    2685.269    2786.164   2685.269     2783.288  0.0133553921
2020-02-05    2792.371    2842.743   2778.864     2818.088  0.0125031977

Wrong.Days <- c("2020-01-24","2020-01-27", "2020-01-28", "2020-01-29", "2020-01-30", "2020-01-31", "2020-04-06")

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以将Wrong.Days 转换为POSIXct 并根据index 进行过滤

    Wrong.Days <- as.POSIXct(Wrong.Days)
    SHCOMP[!zoo::index(SHCOMP) %in% Wrong.Days]
    

    【讨论】:

      【解决方案2】:

      像往常一样使用index 进行子集化。

      xts1[!as.character(index(xts1)) %in% Wrong.Days, ]
      #            SHCOMP.Open SHCOMP.High SHCOMP.Low SHCOMP.Close SHCOMP.Return
      # 2020-01-15    3103.175    3107.943   3082.042     3090.038 -0.0054016647
      # 2020-01-16    3095.734    3096.372   3070.884     3074.081 -0.0051640142
      # 2020-01-17    3081.464    3091.952   3067.252     3075.496  0.0004603002
      # 2020-01-20    3082.113    3096.311   3070.480     3095.787  0.0065976350
      # 2020-01-21    3085.790    3085.790   3051.230     3052.142 -0.0140981922
      # 2020-01-22    3038.487    3069.253   3006.268     3060.754  0.0028216249
      # 2020-01-23    3037.952    3045.041   2955.346     2976.528 -0.0275180560
      # 2020-02-03    2716.698    2766.577   2716.698     2746.606 -0.0772450318
      # 2020-02-04    2685.269    2786.164   2685.269     2783.288  0.0133553921
      # 2020-02-05    2792.371    2842.743   2778.864     2818.088  0.0125031977
      

      数据:

      xts1 <- structure(c(3103.175, 3095.734, 3081.464, 3082.113, 3085.79, 
      3038.487, 3037.952, 3037.952, 3037.952, 3037.952, 3037.952, 3037.952, 
      3037.952, 2716.698, 2685.269, 2792.371, 3107.943, 3096.372, 3091.952, 
      3096.311, 3085.79, 3069.253, 3045.041, 3045.041, 3045.041, 3045.041, 
      3045.041, 3045.041, 3045.041, 2766.577, 2786.164, 2842.743, 3082.042, 
      3070.884, 3067.252, 3070.48, 3051.23, 3006.268, 2955.346, 2955.346, 
      2955.346, 2955.346, 2955.346, 2955.346, 2955.346, 2716.698, 2685.269, 
      2778.864, 3090.038, 3074.081, 3075.496, 3095.787, 3052.142, 3060.754, 
      2976.528, 2976.528, 2976.528, 2976.528, 2976.528, 2976.528, 2976.528, 
      2746.606, 2783.288, 2818.088, -0.0054016647, -0.0051640142, 0.0004603002, 
      0.006597635, -0.0140981922, 0.0028216249, -0.027518056, 0, 0, 
      0, 0, 0, 0, -0.0772450318, 0.0133553921, 0.0125031977), .Dim = c(16L, 
      5L), .Dimnames = list(NULL, c("SHCOMP.Open", "SHCOMP.High", "SHCOMP.Low", 
      "SHCOMP.Close", "SHCOMP.Return")), index = structure(c(1579042800, 
      1579129200, 1579215600, 1579474800, 1579561200, 1579647600, 1579734000, 
      1579820400, 1580079600, 1580166000, 1580252400, 1580338800, 1580425200, 
      1580684400, 1580770800, 1580857200), tzone = "", tclass = c("POSIXct", 
      "POSIXt")), class = c("xts", "zoo"))
      

      【讨论】:

        猜你喜欢
        • 2018-05-17
        • 2021-02-05
        • 2020-05-25
        • 2014-07-25
        • 1970-01-01
        • 2020-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多