我写了一个简单的函数来希望计算负值的总和但是失败了。理想情况下,当我将一个向量传递给函数时,它应该给出负值的总计数。有人可以帮忙吗?
我的代码:
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)"
答案 0 :(得分: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 :(得分:1)
另一种可能的方法是使用length
函数本身。为:
length(arg[arg<0])
#[1] 26