R条件语句

if 语句可以使得你有条件地执行代码。其形式如下所示:

单个条件判断

if (condition) {
# 条件为真时执行的代码
                } else {
# 条件为假时执行的代码 }

多重条件

你可以将多个 if 语句串联起来:

if (this) {
# 做一些操作
} else if (that) { # 做另外一些操作
} else {
#
}

但如果你有一长串 if 语句,那么就要考虑重写了。重写的一种方法是使用 switch() 函数, 它先对第一个参数求值,然后按照名称或位置在后面的参数列表中匹配返回结果:

function(x, y, op) {
  switch(op,
         plus = x + y,
         minus = x - y,
         times = x * y,
         divide = x / y,
         stop("Unknown op!")
         )
  }

代码风格

if 和 function 后面总是要跟着一对大括号({}),其中的内容应该缩进两个空格。这样通 过左侧空白就可以很容易地知道代码层次。 左大括号不应该自己占一行,而且后面要换行。右大括号应该自己占一行,除非后面跟着 else。大括号中的代码一定要缩进:

if (y < 0 && debug) {
       message("Y is negative")
     }
if (y == 0) {
                       log(x)
     } else {
y^ x }

如果 if 语句非常短,可以在一行内写下,那么可以不用大括号:

y <- 10
x <- if (y < 20) "Too low" else "Too high"

我们建议只对特别短的 if 语句采用这种形式,其他情况下还是完整形式更易于阅读:

     if (y < 20) {
       x <- "Too low"
     } else {
       x <- "Too high"
}

选自《R数据科学》

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux中if-else条件判断语句

    其中elif和else不是必须的,如果只需判断一次,那么if...fi即可。值得注意的是if后面中括号[]中的语句[的后面和]的前面必须要有空格。

    生信编程日常
  • python中的if x 与if x == True

    测试一下时间,显然第一种略快一点。第二个多了比较的操作,略慢一点。并且,考虑到PEP的规范,运行速度和简洁性等方面,if x更加合适。此外,在python中判断...

    生信编程日常
  • kallisto比对参考转录组

    kallisto是2016年发表在Nature Biotechnology上的一个比对工具,可以将bulk或者single-cell RNA-Seq数据的序列直...

    生信编程日常
  • R语言写2048游戏

           2048 是一款益智游戏,只需要用方向键让两两相同的数字碰撞就会诞生一个翻倍的数字,初始数字由 2 或者 4 构成,直到游戏界面全部被填满,游戏结...

    用户1680321
  • 【趣解编程】条件语句if

    遇见if,就是走到了分岔路口,需要根据当前拥有的条件和环境,来决断到底要走哪一条路。

    一斤代码
  • 为什么用 if(0 == x) 而不是 if(x == 0) ?

    大家好,今天跟大伙分享一个编程小技巧方面的知识:标题已经给出了,为什么有的人更愿意用 if ( 0 == x)而不是 if(x == 0)?

    7089bAt@PowerLi
  • LeetCode Longest Palindromic Substring

    Given a string s, find the longest palindromic substring in s. You may assume th...

  • 终于让采集侠自动采集了

    用织梦采集侠一段时间了,觉得这个插件真的不错,尤其是新版本,可以结合DEDE自动的采集规则来进行采集。一下采集功能就非常强大了。

    用户1191760
  • js中判断对象是否为空的三种实现方法

    在写js脚本的时候经常遇到对象为空或者不是对象的情况,出现这种情况我们可以用if去判断它,然后去执行相应的处理方法,具体判断他们的方法有以下几种:

    跟着阿笨一起玩NET
  • 一道简单但易错的C语言面试题

    正确答案是B选项。首先,要注意的一点是这里的if判断条件里用的是=号,而不是==号,这个小陷阱可能会迷惑一些初学C语言的朋友。如果这里用的是==号的话,正确答案...

    正念君

扫码关注云+社区

领取腾讯云代金券