2
我正在使用Rstudio並嘗試創建一個函數,該函數將通過矢量循環並執行一段時間條件的計算。然後該函數應該返回一個數據框,其中輸入的矢量在一列中,並且爲了滿足另一列中的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])
}
我有它打印值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(X = 2:10,iters =長度(sapply(2:10,T5)) -1)' – akrun