R xts: преобразовать все 0 значений во временной ряд с последним найденным значением, отличным от 0 - PullRequest
3 голосов
/ 30 марта 2012

Я работаю над объектом xts, который содержит несколько нулей в одном из столбцов, и мне нужно заменить их последним значением, отличным от 0, найденным в последовательности.

Например, я упрощаю здесьиспользуя обычный вектор R:

v = c(1, 2, 3, 0, 0, 0)

Мне нужно изменить все 0 с последним значением! = 0 в последовательности, в данном случае 3. Результирующий вектор должен быть:

> v
[1] 1 2 3 3 3 3

Как мне этого добиться, возможно, используя transform () или другую векторную операцию?

1 Ответ

4 голосов
/ 30 марта 2012

Установите нули на NA и используйте na.locf:

x <- .xts(c(1, 2, 3, 0, 0, 0), 1:6)
x[x==0] <- NA
na.locf(x)
...