如何使用函数和ifelse()来总结负值的总和?

问题描述 投票:2回答:2

我写了一个简单的函数来希望计算负值的总和但是失败了。理想情况下,当我将一个向量传递给函数时,它应该给出负值的总计数。有人可以帮忙吗?

我的代码:

    arg <- c(rnorm(50, 0))
    neg <- 0
    count.negative.fun <- function(x) {
            ifelse(x <= 0, neg = neg +1,)
            return(neg)
     }

我打电话的时候:

  count.negative.fun(arg)

它给了我这个错误信息:"Error in ifelse(x <= 0, neg = neg + 1, ) : unused argument (neg = neg + 1)"

r function
2个回答
2
投票

当使用ifelse并定义一个函数时,可能会这样做

count.negative.fun <- function(x) sum(ifelse(x <= 0, 1, 0))
count.negative.fun(arg)
# [1] 26

?ifelse。当x的元素为非正数时,它返回1,否则返回0。然后我们可以总结结果。

但是,您也可以简单地写

sum(arg < 0)
# [1] 26

1
投票

另一种可能的方法是使用length函数本身。如:

length(arg[arg<0])
#[1] 26
© www.soinside.com 2019 - 2024. All rights reserved.