涉及数字 (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
假设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