迴圈
for (n in x) {expr}
r中最基本的是for迴圈,其中n為迴圈變數,x通常是乙個序列。n在每次迴圈時從x中順序取值,代入到後面的expr語句中進行運算。下面的例子即是以for迴圈計算30個fibonacci數。
x <- c(1,1)
for (i in 3:30)
例子1pv<-c(1,1,2,3,1,1,15,7,18,1,1,2,3,1,1)
result<- ""
m<-1
for(i in pv) else if(i<=15) else
m<-m+1
} 例子2
pv<-c(1,1,2,3,1,1,15,7,18,1,1,2,3,1,1)
result<-""
for(i in 1:length(pv)) else if(pv[i]<=15) else
} while (condition)
當不能確定迴圈次數時,我們需要用while迴圈語句。在condition條件為真時,執行大括號內的expr語句。下面即是以while迴圈來計算30個fibonacci數。
x <- c(1,1)
i <- 3
while (i <= 30)
例子3pv<-c(1,1,2,3,1,1,15,7,18,1,1,2,3,1,1)
i<-1
result<-""
while(i
repeat-break迴圈語句
repeat是無限迴圈語句,並且會在達到迴圈條件後使用break語句直接跳出迴圈。例如:
pv<-c(1,1,2,3,1,1,15,7,18,1,1,2,3,1,1)
i<-1
result<-""
repeat
if(pv[i]<=5) else if(pv[i]<=15) else
i<-i+1
}例項中的break也叫跳出迴圈命令,執行後將直接跳出迴圈語句。r語言還提供了乙個next語句,執行後只會跳出本次迴圈,而不會跳出整個迴圈語句。
條件if (conditon) else
if語句用來進行條件控制,以執行不同的語句。若condition條件為真,則執行expr1,否則執行expr2。ifesle()函式也能以簡潔的方式構成條件語句。下面的乙個簡單的例子是要找出100以內的質數。
x <- 1:100
y <- rep(t,100)
for (i in 3:100) else
}print(x[y])
在上面例子裡,all()函式的作用是判斷乙個邏輯序列是否全為真,%%的作用是返回餘數。在if/else語句中乙個容易出現的錯誤就是else沒有放在}的後面,若你執行下面的示例就會出現錯誤。
logic = 3
x<- c(2,3)
if (logic == 2)
else
show(y)
乙個例子
本例來自於"introduction to scientific programming and simulatoin using r"一書的習題。有這樣一種賭博遊戲,賭客首先將兩個骰子隨機拋擲第一次,如果點數和出現7或11,則贏得遊戲,遊戲結束。如果沒有出現7或11,賭客繼續拋擲,如果點數與第一次扔的點數一樣,則贏得遊戲,遊戲結束,如果點數為7或11則輸掉遊戲,遊戲結束。如果出現其它情況,則繼續拋擲,直到贏或者輸。用r程式設計來計算賭客贏的概率,以決定是否應該參加這個遊戲。
craps <- function() else if (current.roll == initial.roll) }}
mean(replicate(10000, craps()))
從最終結果來看,賭客贏的概率為0.46,長期來看只會往外掏錢,顯然不應該參加這個遊戲了。最後要說的是,本題也可以用遞迴來做。
R 條件與迴圈
迴圈語句 使用形式 if 條件 如果條件成立,大括號內的語句就被執行 使用形式 if 條件 else 注意 else必須緊跟在 後面,不能另起一行,否則報錯 還可以組合起來用 if.else if.else.語句 if 條件1 else if 條件2 else if 條件3 else switch語...
R 條件與迴圈
迴圈語句 使用形式 if 條件 如果條件成立,大括號內的語句就被執行 使用形式 if 條件 else 注意 else必須緊跟在 後面,不能另起一行,否則報錯 還可以組合起來用 if.else if.else.語句 if 條件1 else if 條件2 else if 條件3 else switch語...
R語言 迴圈 條件 函式基礎練習 1
學習筆記 1 本金10000元存入銀行,年利率是百分之三,每過1年,將本金和利息相加作為新的本金。計算10年之後,獲得本金是多少?用for迴圈 sum 10000 for i in 1 10 print sum 1 找出1 1000既不能被6整除,又不能被8整除的所有數 for i in 1 100...