vlambda博客
学习文章列表

R语言笔记——WHICH函数一




      本个专题将介绍R语言的一些基本技能和实用技巧。本教程介绍了RWHICH函数的用法以及它如何与示例一起使用。





WHICH

    

R中,which()函数为您提供逻辑向量TRUE的元素的  位置。它可以是向量中的行号或列号或位置。




字母“ z”az字母中的位置

    whichletters==“ z”)当“ z”位于第26位时


返回 26 




创建一个示例数据框

      以下程序创建一个包含四个变量的数据框。该数据帧将在后续示例中使用。



> ls = data.frame( x1 = ceiling(runif(10)*10),+ x2 = ceiling(runif(10)*10),+ x3 = runif(10),+                  x4= rep(letters[1:5],2))


## x1 x2 x3 x4## 1 9 5 0.4272740 a## 2 1 6 0.5762478 b## 3 10 10 0.3396133 c## 4 8 4 0.8779946 d## 5 7 1 0.3308398 e## 6 3 4 0.4284258 a## 7 4 2 0.4895551 b## 8 4 8 0.6322988 c## 9 5 6 0.1949402 d## 10  9  6  0.5328050  e



 

 ls数据集中的变量“ x4”的列号



> i=which(names(ls)== "x4")





     变量“ x1”的最大值存在的行号



> which(ls$x1 == max(ls$x1))


## [1] 1


在这种情况下,它将为您提供存储x1最大值的行/观察号。



 R while循环

      while循环比for循环更广泛,因为您可以将任何for循环记录为while循环,反之则不行。 在下面的示例中,我们正在检查数字是奇数还是偶数



> i=1> while(i<7)+ {+ if(i%%2==0)+ print(paste(i, "is an Even number"))+ else if(i%%2>0)+ print(paste(i, "is an Odd number"))+ i=i+1+ }


## [1] "1 is an Odd number"## [1] "2 is an Even number"## [1] "3 is an Odd number"## [1] "4 is an Even number"## [1] "5 is an Odd number"## [1] "6 is an Even number"


i %% 2读取为modi2)。迭代将从1开始到6(即i <7)。满足条件时停止。



循环概念

     BreakNext Break关键字 当循环遇到“ break”时,它将停止迭代并退出循环。



> for (i in 1:3) {+ for (j in 3:1) {+ if ((i+j) > 4) {+ break } else {+ print(paste("i=", i, "j=", j))+ }+ }+ }


## [1] "i= 1 j= 3"## [1] "i= 1 j= 2"## [1] "i= 1 j= 1"


在这种情况下,当满足条件i + j> 4时,它会跳出循环。