涉及数字 (0) 值的加法

Addition involving numeric(0) values

假设x是一个实数,或者是一个向量。我被重视-假。然后 x[i] 将 return numeric(0)。我想把它当作一个实数0,或者整数0,它们都适合加法。

numeric(0) 添加到任何实数将 return numeric(0),而我希望获得被添加的实数作为结果。我该怎么做才能转换数字 (0) 值?提前致谢!

只有我们做+的时候才有问题。如果我们使用 sum

就可以避免这种情况
sum(numeric(0), 5)
#[1] 5
sum(numeric(0), 5, 10)
#[1] 15

或者如果我们需要使用 +,一个简单的选择是将第一个元素 0、select 连接起来。如果元素是 numeric(0),则替换为 0,对于其他情况,第一个元素保持不变

c(numeric(0), 0)[1]
#[1] 0

使用一个小例子

lst1 <- list(1, 3, numeric(0),  4, numeric(0))
out <- 0
for(i in seq_along(lst1)) {
       out <- out + c(lst1[[i]], 0)[1]
  }

out
#[1] 8

当输入为 numeric(0).

时,您可以将 max/min 与 0 一起使用以获得 0 作为输出
x <- 1:10
max(x[FALSE], 0)
#[1] 0

min(x[FALSE], 0)
#[1] 0