替换 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
计算股票价格时间序列的 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