Visible to members of this folder
# "for 迴圈"使用範例
for (i in 1:10) # "i" -> "變數" ; "1:10" -> "含有任何值的 vector"
{
# ... (要執行的工作)
}
> # 方法1:建立含有數字"1 ~ 10"的 vector,然後用"for 迴圈"逐一顯示
> for (i in 1:10)
+ {
+ print(i)
+ }
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
>
> # 方法2:使用內建的向量化運算,再搭配"print"函數顯示
> print(1:10)
[1] 1 2 3 4 5 6 7 8 9 10
> # 建立一個含有水果名稱的 vector
> fruit <- c("apple", "banana", "pomegranate")
> # 建立一個變數(亦為 vector)以儲存水果名稱的長度,先儲存"NA"值作為開始
> fruitLength <- rep(NA, length(fruit))
> # 把它顯示出來,全部為"NA"值
> fruitLength
[1] NA NA NA
> # 替它取名
> names(fruitLength) <- fruit
> # 再次顯示,還是"NA"值
apple banana pomegranate
NA NA NA
> # 對 fruit(水果名稱)做出疊代,每次把名稱長度都存入 vector 裡
> for (a in fruit)
+ fruitLength[a] <- nchar(a)
> # 把長度顯示出來
5 6 11
> # 呼叫 nchar 函數
> fruitLength2 <- nchar(fruit)
> names(fruitLength2) <- fruit
> # 顯示出來
> fruitLength2
> identical(fruitLength, fruitLength2)
[1] TRUE
# "while 迴圈"使用範例
while (x <= 10) # "x <= 10" -> "檢測的條件"
> x <- 1
> while (x <= 5)
+ print(x)
+ x <- x + 1
+ if (i == 3)
+ next # 當 i = 3 時,會跳過此次疊代 (在結果中"3"並沒有被顯示出來)
+ if (i == 4)
+ break # 當 i = 4 時,會退出迴圈 (在結果中只顯示"1 ~ 3",其他數字並不會被顯示)
整理自 R 軟體資料分析基礎與應用 -- Ch10 : 迴圈 - 疊代元素的傳統作法
(一)for 迴圈
# "for 迴圈"使用範例
for (i in 1:10) # "i" -> "變數" ; "1:10" -> "含有任何值的 vector"
{
# ... (要執行的工作)
}
> # 方法1:建立含有數字"1 ~ 10"的 vector,然後用"for 迴圈"逐一顯示
> for (i in 1:10)
+ {
+ print(i)
+ }
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
>
>
> # 方法2:使用內建的向量化運算,再搭配"print"函數顯示
> print(1:10)
[1] 1 2 3 4 5 6 7 8 9 10
>
> # 建立一個含有水果名稱的 vector
> fruit <- c("apple", "banana", "pomegranate")
>
> # 建立一個變數(亦為 vector)以儲存水果名稱的長度,先儲存"NA"值作為開始
> fruitLength <- rep(NA, length(fruit))
>
> # 把它顯示出來,全部為"NA"值
> fruitLength
[1] NA NA NA
>
> # 替它取名
> names(fruitLength) <- fruit
> # 再次顯示,還是"NA"值
> fruitLength
apple banana pomegranate
NA NA NA
>
>
> # 對 fruit(水果名稱)做出疊代,每次把名稱長度都存入 vector 裡
> for (a in fruit)
+ {
+ fruitLength[a] <- nchar(a)
+ }
>
> # 把長度顯示出來
> fruitLength
apple banana pomegranate
5 6 11
>
>
> # 呼叫 nchar 函數
> fruitLength2 <- nchar(fruit)
>
> # 替它取名
> names(fruitLength2) <- fruit
>
> # 顯示出來
> fruitLength2
apple banana pomegranate
5 6 11
>
> identical(fruitLength, fruitLength2)
[1] TRUE
>
(二)while 迴圈
# "while 迴圈"使用範例
while (x <= 10) # "x <= 10" -> "檢測的條件"
{
# ... (要執行的工作)
}
> x <- 1
> while (x <= 5)
+ {
+ print(x)
+ x <- x + 1
+ }
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
>
(三)迴圈的強制處理:"next" 和 "break"
> for (i in 1:10)
+ {
+ if (i == 3)
+ {
+ next # 當 i = 3 時,會跳過此次疊代 (在結果中"3"並沒有被顯示出來)
+ }
+ print(i)
+ }
[1] 1
[1] 2
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
>
> for (i in 1:10)
+ {
+ if (i == 4)
+ {
+ break # 當 i = 4 時,會退出迴圈 (在結果中只顯示"1 ~ 3",其他數字並不會被顯示)
+ }
+ print(i)
+ }
[1] 1
[1] 2
[1] 3
>