在R中的数据集中将-inf,NaN和NA值替换为零 [英] Replace -inf, NaN and NA values with zero in a dataset in R

查看:1657
本文介绍了在R中的数据集中将-inf,NaN和NA值替换为零的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在R中运行一些交易策略.我已经下载了一些股价并计算了收益.新的返回数据集具有多个-inf,NaN和NA值.我正在复制数据集的一行(log_ret).它是一个动物园数据集.

I am trying to run some trading strategies in R. I have downloaded some stock prices and calculated returns. The new return dataset has a number of -inf, NaN, and NA values. I am reproducing a row of the dataset (log_ret). Its a zoo dataset.

library(zoo)
log_ret <- structure(
  c(0.234,-0.012,-Inf,NaN,0.454,Inf), .Dim = c(1L, 6L), 
  .Dimnames = list(NULL, c("x", "y", "z", "s", "p", "t")),
  index = structure(12784, class = "Date"),
  class = "zoo"
)

               x      y    z   s     p   t
2005-01-01 0.234 -0.012 -Inf NaN 0.454 Inf

如何将这些不需要的值替换为0?

How can I replace these unwanted values with 0?

推荐答案

按照?zoo:

由数据包含以下内容的动物园对象进行下标 逻辑值未定义.

Subscripting by a zoo object whose data contains logical values is undefined.

因此,您需要将子集包装在which调用中:

So you need to wrap the subsetting in a which call:

log_ret[which(!is.finite(log_ret))] <- 0
log_ret
               x      y z s     p t
2005-01-01 0.234 -0.012 0 0 0.454 0

这篇关于在R中的数据集中将-inf,NaN和NA值替换为零的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆