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)

讨论扩展:

另请参阅:

猜你喜欢

转载自www.cnblogs.com/li-20151130/p/9030685.html
今日推荐