Я думаю, вы просто забыли вернуть значение из вашей функции:
cost <- function(n) {
total <- 0
if (n <= 100) {
total <- n*4
}
else {
total = 2.5*(n-100) + 100*4
}
return(total)
}
cost(5)
Демо
R имеет правила, которые определяют, существует ли неявное возвращаемое значение и что это было бы, но использование явного оператора return
всегда хорошо, поскольку оно дает понять, что ваша функция на самом деле делает.
Примечание: используя ifelse
, мы можем фактически обработать всю эту логику в одной строке кода:
cost <- ifelse(n <= 100, n*4, 2.5*(n-100) + 100*4)