在函数中使用IFELSE

时间:2014-07-23 13:13:31

标签: r if-statement

我在实现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。

2 个答案:

答案 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