【问题标题】:Replacing an element of a zooreg object替换 zooreg 对象的元素
【发布时间】:2016-06-30 22:21:06
【问题描述】:

在计算股票价格时间序列的回报时,它会返回某些日期的Inf 值。该系列有一个 zooreg 类,我正在尝试用 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

但它给出了一个错误:

a[[a = Inf]] 中的错误

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

【问题讨论】:

    标签: r zoo


    【解决方案1】:

    试试这个:

    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
    

    【讨论】:

    • 使用!is.finite而不是is.infinite有什么具体原因吗?
    • 两者都可以,但 !is.finite 也可以替换 NaN。
    猜你喜欢
    • 2018-10-29
    • 2016-07-20
    • 2020-08-09
    • 2018-08-09
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2014-12-09
    相关资源
    最近更新 更多