R 索引矩阵是否应与xts对象一起使用?

R 索引矩阵是否应与xts对象一起使用?,r,xts,R,Xts,当我对xts对象使用索引矩阵时,我得到了令人惊讶的结果。见下文 如果我将x强制为一个矩阵(毫不奇怪),它会像预期的那样工作 谢谢你的帮助 > data(sample_matrix) > x<- as.xts(sample_matrix) > i<- matrix(1:4, 2, 2, byrow=T ) > i [,1] [,2] [1,] 1 2 [2,] 3 4 > head(x) O

当我对xts对象使用索引矩阵时,我得到了令人惊讶的结果。见下文

如果我将x强制为一个矩阵(毫不奇怪),它会像预期的那样工作

谢谢你的帮助

> data(sample_matrix)
> x<- as.xts(sample_matrix)
> i<- matrix(1:4, 2, 2,  byrow=T )
> i
     [,1] [,2]
[1,]    1    2
[2,]    3    4
> head(x)
               Open     High      Low    Close
2007-01-02 50.03978 50.11778 49.95041 50.11778
2007-01-03 50.23050 50.42188 50.23050 50.39767
2007-01-04 50.42096 50.42096 50.26414 50.33236
2007-01-05 50.37347 50.37347 50.22103 50.33459
2007-01-06 50.24433 50.24433 50.11121 50.18112
2007-01-07 50.13211 50.21561 49.99185 49.99185
> x[i]<- NA
> head(x)
               Open     High      Low    Close
2007-01-02       NA 50.11778 49.95041 50.11778
2007-01-03       NA 50.42188 50.23050 50.39767
2007-01-04       NA 50.42096 50.26414 50.33236
2007-01-05       NA 50.37347 50.22103 50.33459
2007-01-06 50.24433 50.24433 50.11121 50.18112
2007-01-07 50.13211 50.21561 49.99185 49.99185
>数据(样本矩阵)
>x i i
[,1] [,2]
[1,]    1    2
[2,]    3    4
>头部(x)
高开低关
2007-01-02 50.03978 50.11778 49.95041 50.11778
2007-01-03 50.23050 50.42188 50.23050 50.39767
2007-01-04 50.42096 50.42096 50.26414 50.33236
2007-01-05 50.37347 50.37347 50.22103 50.33459
2007-01-06 50.24433 50.24433 50.11121 50.18112
2007-01-07 50.13211 50.21561 49.99185 49.99185
>x[i]头(x)
高开低关
2007-01-02 NA 50.11778 49.95041 50.11778
2007-01-03 NA 50.42188 50.23050 50.39767
2007-01-04北美50.4209650.2641450.33236
2007-01-05 NA 50.37347 50.22103 50.33459
2007-01-06 50.24433 50.24433 50.11121 50.18112
2007-01-07 50.13211 50.21561 49.99185 49.99185

我有一个解决办法。而不是

x[i]<- NA
x[i]芯数据(x)[i]头(x)
高开低关
2007-01-02 50.03978 NA 49.95041 50.11778
2007-01-03 50.23050 50.42188 50.23050 50.39767
2007-01-04 50.4209650.4209650.26414北美
2007-01-05 50.37347 50.37347 50.22103 50.33459
2007-01-06 50.24433 50.24433 50.11121 50.18112
2007-01-07 50.13211 50.21561 49.99185 49.99185

虽然在我(初学者)看来xts在原始代码中做的事情是错误的。

看看
`[.xts`
,它并不声称支持索引矩阵。感谢mnel-我没有看到那个页面。但我真正的问题是我想分配给子集,而不是提取它。我能想到的最佳解决方法是将我的时间序列强制为矩阵,进行分配,然后将其转换回xts对象。我相信您会在这里得到响应总之,至少有一位
xts
作者是SO的常客。我想到了一个更好的解决办法:coredata(x)[I]将其作为答案添加!
> coredata(x)[i]<- NA
> head(x)
               Open     High      Low    Close
2007-01-02 50.03978       NA 49.95041 50.11778
2007-01-03 50.23050 50.42188 50.23050 50.39767
2007-01-04 50.42096 50.42096 50.26414       NA
2007-01-05 50.37347 50.37347 50.22103 50.33459
2007-01-06 50.24433 50.24433 50.11121 50.18112
2007-01-07 50.13211 50.21561 49.99185 49.99185