R语言基础入门—循环

R语言

什么是循环

循环,用来处理对多个同类输入做相同事情(即迭代),如对不同列做相同操作、对不同数据集做相同操作。循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的流程图:

attachments-2021-04-z7afwyjL608bb7b884475.png
R 语言提供的循环类型有:

  1. repeat 循环
  2. while 循环
  3. for 循环

R 语言提供的循环控制语句有:

  1. break 语句
  2. Next 语句

循环控制语句改变你代码的执行顺序,通过它你可以实现代码的跳转。

循环类型

repeat

repeat 循环会一直执行代码,直到条件语句为 false 时才退出循环,退出要使用到 break 语句。语法格式如下:

repeat { 
    // 相关代码 
    if(condition){
       break
    }}

以下实例在变量 cnt 为 5 时退出循环,cnt 为计数变量:

实例

repeat { 
v <- c("Google","Runoob")
cnt <- 2

repeat {
   print(v)
   cnt <- cnt+1

   if(cnt > 5) {
      break
   }
}

执行以上代码,输入结果为:

[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"

while

只要给定的条件为 true,R 语言中的 while 循环语句会重复执行一个目标语句。

语法格式如下:

while(condition)
{
   statement(s);
}

在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。

condition 可以是任意的表达式,当为任意非零值时都为 true。当条件为 true 时执行循环。当条件为 false 时,退出循环,程序流将继续执行紧接着循环的下一条语句。

以下实例在在变量 cnt 小于 7 时输出 while 语句块中的内容,cnt 为计数变量:

实例

v <- c("Google","Runoob")
cnt <- 2

while (cnt < 7) {
   print(v)
   cnt = cnt + 1
}

执行以上代码,输入结果为:

[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"

for

R 编程语言中 for 循环语句可以重复执行指定语句,重复次数可在 for 语句中控制。

语法格式如下:

for (value in vector) {
    statements
}

R 语言的 for 循环特别灵活,不仅可以循环整数变量,还可以对字符向量,逻辑向量,列表等数据类型进行迭代。

以下实例输出 26 个字母对前面四个字母:

实例

v <- LETTERS[1:4]
for ( i in v) {
   print(i)
}

执行以上代码,输入结果为:

[1] "A"
[1] "B"
[1] "C"
[1] "D"

循环控制

break

R 语言的 break 语句插入在循环体中,用于退出当前循环或语句,并开始脚本执行紧接着的语句。

如果你使用循环嵌套,break 语句将停止最内层循环的执行,并开始执行的外层的循环语句。

break 也常用于 switch 语句中。

语法格式如下:

break

以下实例在 变量 cnt 为 5 时使用 break 退出循环,cnt 为计数变量:

v <- c("Google","Runoob") 
cnt <- 2 
repeat { 
    print(v) 
    cnt <- cnt+1 
    if(cnt > 5) { 
        break 
    } 
}

执行以上代码,输入结果为:

[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"

next

next 语句用于跳过当前循环,开始下一次循环(类似其他语言的 continue)。

语法格式如下:

next

以下实例输出 26 个字母的前面 6 个字母,在字母为 D 的时候跳过当前的循环,进行下一次循环:

实例

v <- LETTERS[1:6]
for ( i in v) {

   if (i == "D") {  # D 不会输出,跳过这次循环,进入下一次
      next
   }
   print(i)
}

执行以上代码,输入结果为:

[1] "A"
[1] "B"
[1] "C"
[1] "E"
[1] "F"

好了,今天就介绍到这里,下期再见!

此外,我们在网易云课堂上有各种教学视频,有兴趣可以了解一下:

1. 文章越来越难发?是你没发现新思路,基因家族分析发2-4分文章简单快速,学习链接:基因家族分析实操课程

2. 转录组数据理解不深入?图表看不懂?点击链接学习深入解读数据结果文件,学习链接:转录组(有参)结果解读转录组(无参)结果解读

3. 转录组数据深入挖掘技能-WGCNA,提升你的文章档次,学习链接:WGCNA-加权基因共表达网络分析

4. 转录组数据怎么挖掘?学习链接:转录组标准分析后的数据挖掘

5. 微生物16S/ITS/18S分析原理及结果解读

6. 更多学习内容:linux、perl、R语言画图,更多免费课程请点击以下链接:

https://study.omicsclass.com/


  • 发表于 2021-04-30 15:54
  • 阅读 ( 2003 )
  • 分类:R

0 条评论

请先 登录 后评论
安生水
安生水

347 篇文章

作家榜 »

  1. omicsgene 698 文章
  2. 安生水 347 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. 红橙子 78 文章
  7. rzx 74 文章
  8. CORNERSTONE 72 文章