Я новичок в R, и у меня возникли трудности с простой функцией рекурсии.Я инициализирую переменную от x до .1, а затем вызываю рекурсивную функцию, в которой, если x не равно номеру, введенному пользователем, он добавляет .1 к x и рекурсивно вызывает функцию снова.Если x больше, чем введенное число, функция возвращает сообщение об ошибке.
Я попытался установить x для целого числа, в основном 1, а затем попытаться оценить функцию.Этот процесс работает, поэтому я полагаю, что существует проблема добавления десятичных чисел друг к другу, а затем оценки их равенства с целым числом.
u<-function(a)
{
#Initialize r
x<-.1
#Call to recursive method
v(a, x)
}
#Recursive function
v<-function(a, x)
{
#Check for current value of a and r
print(a)
print(x)
if(a==x) {
return("Yes")
}
else if(a < x) {
return("Error!")
}
else{
x<-x+.1
v(a, x)
}
}
Когда я устанавливаю значение 1, я ожидаювозвращать «Да» после повторения до тех пор, пока x не станет равным 1.Однако, это не так.Затем функция повторяется снова, устанавливая x на 1,1 и возвращает сообщение «Ошибка!».