2013-02-20 1 views
4

Я получаю удивительные результаты, когда использую индексную матрицу с объектом 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) 
       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 
+1

, глядя на '' ''.. '' '' '', Он не претендует на поддержку матриц индексов. – mnel

+0

Спасибо, mnel - Я не видел эту страницу. Моя реальная проблема заключается в том, что я хочу назначить подмножество, а не извлекать его. Лучшее обходное решение, о котором я могу думать, состоит в том, чтобы принудить мои временные ряды к матрице, выполнить задание и затем вернуть его обратно в объект xts. – user1871635

+0

Я уверен, что вы получите ответ здесь, в конце концов, по крайней мере один автор 'xts' является постоянным участником SO. – mnel

ответ

3

У меня есть обходное решение. Вместо

x[i]<- NA 

Использования CoreData:

> 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 делают неправильные вещи в исходном коде.