您好,登錄后才能下訂單哦!
這篇文章主要介紹了R語言的循環類型有哪些的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇R語言的循環類型有哪些文章都會有所收獲,下面我們一起來看看吧。
循環,用來處理對多個同類輸入做相同事情(即迭代),如對不同列做相同操作、對不同數據集做相同操作。循環語句允許我們多次執行一個語句或語句組。
R 語言提供的循環類型有:
repeat 循環
while 循環
for 循環
R 語言提供的循環控制語句有:
break 語句
Next 語句
循環控制語句改變你代碼的執行順序,通過它你可以實現代碼的跳轉。
repeat 循環會一直執行代碼,直到條件語句為 false 時才退出循環,退出要使用到 break 語句。語法格式如下:
repeat { // 相關代碼 if(condition){ break }}
以下實例在變量 cnt 為 5 時退出循環,cnt 為計數變量:
repeat { v <- c("Google","Runoob") cnt <- 2 repeat { print(v) cnt <- cnt+1 if(cnt > 5) { break } }
執行以上代碼,輸入結果為:
[1] "Google" "Runoob" [1] "Google" "Runoob" [1] "Google" "Runoob" [1] "Google" "Runoob"
只要給定的條件為 true,R 語言中的 while 循環語句會重復執行一個目標語句。
語法格式如下:
while(condition) { statement(s); }
在這里,statement(s) 可以是一個單獨的語句,也可以是幾個語句組成的代碼塊。
condition 可以是任意的表達式,當為任意非零值時都為 true。當條件為 true 時執行循環。當條件為 false 時,退出循環,程序流將繼續執行緊接著循環的下一條語句。
以下實例在在變量 cnt 小于 7 時輸出 while 語句塊中的內容,cnt 為計數變量:
v <- c("Google","Runoob") cnt <- 2 while (cnt < 7) { print(v) cnt = cnt + 1 }
執行以上代碼,輸入結果為:
[1] "Google" "Runoob" [1] "Google" "Runoob" [1] "Google" "Runoob" [1] "Google" "Runoob" [1] "Google" "Runoob"
R 編程語言中 for 循環語句可以重復執行指定語句,重復次數可在 for 語句中控制。
語法格式如下:
for (value in vector) { statements }
R 語言的 for 循環特別靈活,不僅可以循環整數變量,還可以對字符向量,邏輯向量,列表等數據類型進行迭代。
以下實例輸出 26 個字母對前面四個字母:
v <- LETTERS[1:4] for ( i in v) { print(i) }
執行以上代碼,輸入結果為:
[1] "A" [1] "B" [1] "C" [1] "D"
R 語言的 break 語句插入在循環體中,用于退出當前循環或語句,并開始腳本執行緊接著的語句。
如果你使用循環嵌套,break 語句將停止最內層循環的執行,并開始執行的外層的循環語句。
break 也常用于 switch 語句中。
語法格式如下:
break
以下實例在 變量 cnt 為 5 時使用 break 退出循環,cnt 為計數變量:
v <- c("Google","Runoob") cnt <- 2 repeat { print(v) cnt <- cnt+1 if(cnt > 5) { break } }
執行以上代碼,輸入結果為:
[1] "Google" "Runoob" [1] "Google" "Runoob" [1] "Google" "Runoob" [1] "Google" "Runoob"
next 語句用于跳過當前循環,開始下一次循環(類似其他語言的 continue)。
語法格式如下:
next
以下實例輸出 26 個字母的前面 6 個字母,在字母為 D 的時候跳過當前的循環,進行下一次循環:
v <- LETTERS[1:6] for ( i in v) { if (i == "D") { # D 不會輸出,跳過這次循環,進入下一次 next } print(i) }
執行以上代碼,輸入結果為:
[1] "A" [1] "B" [1] "C" [1] "E" [1] "F"
關于“R語言的循環類型有哪些”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“R語言的循環類型有哪些”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。