У меня возникла проблема с выполнением команды 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.
Возможное решение:
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)
Одно решение
test = function(x) ifelse(0>(-50+x^2), 0, -50+x^2)
test(10)
[1] 50
test(100)
[1] 9950