具有多个时间序列(列)的动物园中的子值

问题描述 投票:0回答:1

我正在尝试在多列动物园中用-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

我可以使用循环来执行此操作,但似乎没有必要对如此基本的内容使用循环。

r zoo
1个回答
0
投票

逻辑下标将引用该索引。而是这样做:

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

或者如果您想将其分配给其他变量,则rhs为:

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

这也有效:

coredata(z)[is.infinite(z)] <- NA
© www.soinside.com 2019 - 2024. All rights reserved.