4

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
4

1 に答える 1

3

回避策があります。それ以外の

x[i]<- NA

コアデータを使用:

> 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

私 (初心者) には、xts が元のコードで間違ったことをしているように見えますが。

于 2013-02-20T04:34:12.437 に答える