поднабор значений в зоопарке с несколькими временными рядами (столбцы) - PullRequest
1 голос
/ 24 октября 2019

Я пытаюсь заменить -Inf на NA в зоопарке с несколькими столбцами. Однако, когда я попытался установить значения -Inf в объекте зоопарка так, как я это сделал бы для матрицы, это не сработало, и поэтому замена не может быть произведена:

library(zoo)
mat = matrix(1:50, ncol = 5)
mat[2,5]=-Inf
mat[8,3]=-Inf
colnames(mat) = letters[1:5]

z = as.zoo(mat)

mat[is.infinite(mat)] = NA
mat

z[is.infinite(z)]= NA
z

Я могу сделать это сцикл, но кажется, что нет необходимости использовать цикл для чего-то такого базового.

1 Ответ

1 голос
/ 24 октября 2019

Логическая подписка будет ссылаться на индекс. Вместо этого сделайте это следующим образом:

z[] <- ifelse(is.infinite(z), NA, z)

или если вы хотите присвоить его другой переменной, rhs будет:

z * ifelse(is.infinite(z), NA, 1)

Это также работает:

coredata(z)[is.infinite(z)] <- NA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...