具有多个时间序列(列)的动物园中的子集值
subsetting values in a zoo with multiple time-series (columns)
我正在尝试在多列动物园中用 -Inf 代替 NA。但是,当我尝试按照我对矩阵所做的方式对 zoo 对象中的 -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
我可以用一个循环来做到这一点,但似乎没有必要为如此基本的事情使用循环。
逻辑下标将引用索引。而是这样做:
z[] <- ifelse(is.infinite(z), NA, z)
或者如果您想将其分配给不同的变量,则 rhs 将是:
z * ifelse(is.infinite(z), NA, 1)
这也有效:
coredata(z)[is.infinite(z)] <- NA
我正在尝试在多列动物园中用 -Inf 代替 NA。但是,当我尝试按照我对矩阵所做的方式对 zoo 对象中的 -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
我可以用一个循环来做到这一点,但似乎没有必要为如此基本的事情使用循环。
逻辑下标将引用索引。而是这样做:
z[] <- ifelse(is.infinite(z), NA, z)
或者如果您想将其分配给不同的变量,则 rhs 将是:
z * ifelse(is.infinite(z), NA, 1)
这也有效:
coredata(z)[is.infinite(z)] <- NA