R語言提供了三種循環方法:for循環、while循環和repeat循環。
for循環和while循環在本號前面兩篇文章已經介紹過了,這篇文章將詳細介紹repeat循環的使用方法。
repeat循環概述
repeat循環的語法格式如下:
repeat{ 循環語句 }
repeat循環是一種無條件循環,它需要在循環體中設置終止條件,並使用break語句進行退出。其執行過程可以使用下圖來表示:
例子1:求1~100之間整數和
在R中新建程序腳本編寫代碼如下圖所示:
在R中運行後的效果如下圖:
例子2:找出向量中第一個大於N的數並輸出其索引
這個在其它語言中,一般使用數組來存儲數字,使用循環訪問每個元素並與指定的N進行比較,如果比N大,則記錄這個數字和位置,並退出循環。在R新建程序腳本如下:
在R中的執行情況如下圖所示:
例子3:求100以內的所有素數。
#求出100以內的所有素數
n <- 2 #從2開始判斷
repeat #循環要判斷的數字
{
if(n >= 100) #如果超過100,則跳出
break;
j <- 2 #用2~n的數j去除n
repeat #循環2~n
{
if(n %% j == 0 || j>n)
break
j <- j + 1
}
if( j >= n) #如果j>=n說明n是素數
print(n)
n <- n + 1
}
這裡使用了兩個repeat循環。在R程序如下:
運行結果如下:
例子4:求Fibonacci數列前N項
在本號前面的文章中,曾使用for循環,while循環實現了求斐波那契數列前n項的方法,這裡再使用repeat循環來實現其算法,詳細的代碼如下所示:
#求Fibonacci數列前N項
N <- 20
F <- NA
F[1]<-F[2]<-1
i <- 3
repeat
{
if(i > N)
break
F[i] <- F[i-2] + F[i-1]
i <- i + 1
}
print(F)
在編輯器中的效果如下圖所示:
運算結果如下圖所示:
怎麼樣,repeat循環其實很簡單,它就是個死循環,需要在循環體中設置終止條件,滿足條件時執行break語句從而跳出循環體。
歡迎關注本號,本號會定期更新R語言方面的文章,內容將由淺入深,由基本語法到實際數據分析應用,如果你喜歡,請關注本號,系統會自動推送給你。