#r
#r
Вопрос:
Я не понимаю, почему эта функция возвращает NaN для отрицательных значений x.
lambda lt;- 2.77 alpha lt;- 0.88 # function util lt;- function( x, a, l){ ifelse(x gt;=0, x^a, l * (x^a) ) }
для x я вставляю число из фрейма данных. Если число положительное, я получаю правильный результат. Однако, если он отрицательный, он возвращает NaN
gt; util(-0.5,alpha,lambda) [1] NaN
Может ли кто-нибудь объяснить, почему или предложить решение?
Комментарии:
1. Корни отрицательных чисел сложны.
Ответ №1:
Вы можете попробовать это
util lt;- function(x, a, l) { ifelse(x gt;= 0, x^a, l * (as.complex(x)^a)) }
и вы увидите
gt; util(-0.5, alpha, lambda) [1] -1.399432 0.554074i