R: 控制流: if & for & while
###################################################
問題:if 判斷 18.4.29
if 的應用與??。。。。。。
解決方案:
# if(){}
# if(){}else{}
# if(){}else if(){}else if(){}else{}
# ifelse() #ifelse(2==2&1==2,"yes","noo") #[1] "noo" #像三元選擇符,條件為真返回第二個參數,為假返回第三個參數。
totest = c(1,3,10,0,1,0,2)
ifelse(totest == 1,"yes","no") #[1] "yes" "no" "no" "no" "yes" "no" "no"
ifelse(totest == 1,totest*3,totest+2) #[1] 3 5 12 2 3 2 4
討論擴展:
#復合檢查。雙重形式(&& 和 ||)最好用於if語句;單重形式(& 和 |)用於ifelse語句。雙重僅僅比較兩邊的一個元素,單重比較兩邊的每一個元素。
另請參閱:
###################################################
問題:for 循環 18.4.29
如何用 for 循環實現計算滿足條件的個案數???
解決方案:
#例1:用 for 循環實現,計算滿足條件的個案數。。
j = 0
for (i in iris1$Sepal.Length){
if (i>3 & i<5){j = j+1}
}
print(j)
#等價於:
length(which(iris1$Sepal.Length > 3 & iris1$Sepal.Length<5))
討論擴展:
# next 約等於continue,,跳過本次循環的剩余部分,直接執行下一輪循環。不執行循環體中next後面的部分
# break 即 break。用法一樣。
另請參閱:
###################################################
問題:while 循環 18.4.29
while循環,。。。
解決方案:
j = 1
while (j<=5 ){
print(paste("第",j,"行",sep = ""))
print(iris1[j,]);j = j+1
}
print(j)
討論擴展:
另請參閱:
R: 控制流: if & for & while