Я пишу функцию R, используя if & else if
. См. Код ниже:
i_ti_12 <- function(x){
if (x <= 44)
{ti = exp(-13.2238 + 0.152568*x)}
else if (x >= 49)
{ti = -0.01245109 + 0.000315605*x}
else (x > 44 & x < 49)
{ti = (x-44)*(i_ti_12(49))/(49-44) + (49-x)*(i_ti_12(44))/(49-44)}
return(ti)
}
Я хочу использовать вывод этой функции, i_ti_12(49)
внутри этой функции, но приведенный выше код не работает. Вывод:
> i_ti_12(49)
Error: C stack usage 7974292 is too close to the limit
Простое решение - просто заменить i_ti_12(49)
на -0.01245109 + 0.000315605*49
, но это неочевидный способ решения и может не работать в сложных случаях.
Итак, я действительно хочу узнать и узнать, существуют ли четкие способы сделать это? Я имею в виду, как и в приведенном выше простом примере, написать условную функцию, используя выходные данные одного условия в этой функции. Любая помощь высоко ценится.