R 除以零

R division by Zero

这可能很简单,但我不知道如何解决这个问题。基本上我需要计算多列的增长。因此,当我除以一列时,如果它的值为 0,则它 returns Inf

举个例子数据集

a <- c(1,0,3,4,5)
b <- c(1,4,2,0,4)
c <- data.frame(a,b)
c$growth <- b/a-1

因此,如果您看到第二行,因为 a 的值为 0,则增长为 Inf。它应该显示 4

我的原始数据在 data.table 中,因此 data.table 中的任何解决方案都会有所帮助。

我们该如何解决这个问题?

我不知道你为什么要把 Inf 变成 4。在我看来这没有任何意义,因为增长不是 4 而是 Inf。但是,如果您仍然想这样做,这里有一些代码:

a <- c(1,0,3,4,5)
b <- c(1,4,2,0,4)
data <- data.frame(a,b)
data$growth <- b/a-1
data[data$growth == Inf,3] <-  data[data$growth == Inf,2]