Я использую Rstudio и пытаюсь создать функцию, которая будет проходить через вектор и выполнять вычисления с условием while. Затем функция должна вернуть кадр данных с введенным вектором в один столбец и количество итераций, необходимых для удовлетворения условия while в другом. Я уже создал функцию, которая подготовила расчет с условием while, которое служит основной операцией для функции, с которой у меня возникают проблемы. Вот оно:Цитирование через вектор
t5<-function(x){
z=x
while(x != 1){
if(x %% 2 == 0)
x= x/2
else x= (3 * x +1)
z=c(z, x)
}
return (z)
}
Вот что я для новой функции ... моя проблема функция (t7):
t7<-function(x){
y=0
i=0
for(i in 1:length(x)){
y[i]=length(t5(x[i]))-1
print(y[i])
}
#m<-data.frame(x, y[i])
}
У меня было напечатать у [я], потому что это единственный так что функция что-то делает. вот выход он показывает (что только половина того, что мне нужно):
t7(2:10)
[1] 1
[1] 7
[1] 2
[1] 5
[1] 8
[1] 16
[1] 3
[1] 19
[1] 6
Может кто-нибудь помочь мне понять, как сделать t7 (2:10) проходят через этот массив и возвращает фрейм данных с перечислением массива и количество итераций, которые потребовались для достижения числа 1 для каждого числа в массиве? Любая помощь будет оценена по достоинству.
Или модификации является 'data.frame (х = 2: 10, Iters длина = (sapply (2:10, t5)) -1) ' – akrun