替换 zooreg 对象的元素

Replacing an element of a zooreg object

计算股票价格时间序列的 returns 时,它 returns Inf 某些日期的值。该系列有一个 zooreg class,我正在尝试用 NAs 替换那些 Inf

为了重现性,假设我有以下对象:

a <- structure(c(1, 2, 3, 2, 4, Inf, Inf, 3, 4), .Dim = c(3L, 3L), .Dimnames = list(NULL, 
  c("a", "b", "c")), index = structure(c(5113, 5144, 5173), class = "Date"), 
  frequency = 1, class = c("zooreg", "zoo"))

我尝试了以下方法

a[[a=Inf]]<-NA

但是报错:

Error in a[[a = Inf]] <- NA : attempt to select more than one element

在这种情况下,如何将 Inf 强制转换为 NA

试试这个:

a[] <- replace(coredata(a), !is.finite(a), NA)

给予:

> a
           a  b  c
1984-01-01 1  2 NA
1984-02-01 2  4  3
1984-03-01 3 NA  4