R语言基础入门—判断语句

R语言

什么是判断语句

判断结构要求程序员指定要由程序评估或测试的一个或多个条件,以及如果条件被确定为真则要执行的一个或多个语句,如果条件为假则执行其他语句。

下面是大多数编程语言中典型的判断结构的一般形式:

attachments-2021-04-agFjPQPf608bb7356ecdf.png

R 语言提供了以下类型的判断语句:

    if 语句

    if...else 语句

    switch 语句

if语句

一个 if 语句由一个布尔表达式后跟一个或多个语句组成。

语法格式如下:

if(boolean_expression){
    // 布尔表达式为真将执行的语句}

如果布尔表达式 boolean_expression 为 ture 执行这里面的代码,如果 为 false 则不执行。

实例

x <- 50L
if(is.integer(x)) {
   print("X 是一个整数")
}

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

[1] "X 是一个整数"

if...else语句

一个 if 语句后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
语法格式如下:

if(boolean_expression){
    // 如果布尔表达式为真将执行的语句}else{
    // 如果布尔表达式为假将执行的语句}

如果布尔表达式 boolean_expression 为 true,则执行 if 块内的代码。如果布尔表达式为 false,则执行 else 块内的代码。

实例

x <- c("google","baidu","taobao")

if("baidu" %in% x) {
   print("包含 baidu")
} else {
   print("不包含 baidu")
}

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

[1]"包含 baidu"

如果有多个条件判断,可以使用 if...else if...else:

if(boolean_expression 1){
    // 如果布尔表达式 boolean_expression 1 为真将执行的语句}elseif( boolean_expression 2){
    // 如果布尔表达式 boolean_expression 2 为真将执行的语句}elseif( boolean_expression 3){
    // 如果布尔表达式 boolean_expression 3 为真将执行的语句}else{
    // 以上所有的布尔表达式都为 false 时执行}

实例

x <- c("google","baidu","taobao")

if("weibo" %in% x) {
   print("第一个 if 包含 weibo")
} else if ("baidu" %in% x) {
   print("第二个 if 包含 baidu")
} else {
   print("没有找到")
}

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

[1]"第二个 if 包含 baidu"

switch语句

一个 switch 允许测试一个变量等于多个值时的情况。每个值称为一个 case。
语法格式如下:

switch(expression, case1, case2, case3....)

switch 语句必须遵循下面的规则:

  • switch 语句中的 expression 是一个常量表达式,可以是整数或字符串,如果是整数则返回对应的 case 位置值,如果整数不在位置的范围内则返回 NULL。
  • 如果匹配到多个值则返回第一个。
  • expression如果是字符串,则对应的是 case 中的变量名对应的值,没有匹配则没有返回值。
  • switch 没有默认参数可用。

以下实例返回第三个值:

实例

x <- switch(
   3,
   "google",
   "baidu",
   "taobao",
   "weibo"
)
print(x)

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

[1]"taobao"

如果是字符串返回字符串变量对应的值:

实例

you.like<-"baidu"
switch(you.like, google="www.google.com", baidu= "www.baidu.com", taobao = "www.taobao.com")

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

[1]"www.baidu.com"

如果整数不在范围内的则返回 NULL

实例

> x <- switch(4,"google","baidu","taobao")
> x
NULL

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

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

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

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

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

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

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

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

https://study.omicsclass.com/


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

0 条评论

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

350 篇文章

作家榜 »

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