【发布时间】:2015-08-12 19:28:59
【问题描述】:
我正在使用 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])
}
我让它打印 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 所需的迭代次数?任何帮助,将不胜感激。
【问题讨论】:
标签: arrays r loops vector while-loop