我在实现ifelse
命令时遇到问题。我想只返回正数(或0)输出。例如,在以下等式y=-50+(x^2)
中,当y<=0
时,y
应返回0
。当y>0
它应该返回正确的输出值。当我实现以下代码时:
test = function (x) 50+(x^2)
if(test <= 0) test <- 0 else y <-50+(x^2)
我总是获得0。
答案 0 :(得分:3)
可能的解决方案:
test <- function(x) (x ^ 2 > 50) * (x ^ 2 - 50)
test(5)
# [1] 0
test(10)
# [1] 50
另一种方法:
test2 <- function(x) pmax(0, x ^ 2 - 50)
答案 1 :(得分:1)
一种解决方案
test = function(x) ifelse(0>(-50+x^2), 0, -50+x^2)
test(10)
[1] 50
test(100)
[1] 9950