R语言判断

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

以下是在大多数编程语言中的典型决策结构的一般形式

R提供以下类型的决策语句。 单击以下链接以检查其详细信息。

Sr.No. 声明和描述
1 if语句

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

2 if ... else语句

if语句后面可以有一个可选的else语句,当布尔表达式为false时执行。

3 switch语句

switch语句允许根据值列表测试变量的相等性。

if语句

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

语法

在R中创建if语句的基本语法是

if(boolean_expression) {
// statement(s) will execute if the boolean expression is true.
}

如果布尔表达式的计算结果为true,那么if语句中的代码块将被执行。 如果布尔表达式的计算结果为false,那么第一组代码在if语句结束之后(在结束大括号之后)将被执行。

流程图

x <- 30L
if(is.integer(x)) {
print("X is an Integer")
}

当上面的代码被编译和执行时,它产生以下结果

[1] "X is an Integer"

If...Else语句

if语句后面可以是一个可选的else语句,当布尔表达式为false时执行。

语法

在R中创建if ... else语句的基本语法是 -

if(boolean_expression) {
// statement(s) will execute if the boolean expression is true.
} else {
// statement(s) will execute if the boolean expression is false.
}

如果布尔表达式的计算结果为真,则将执行if代码块,否则将执行代码块。

流程图

x <- c("what","is","truth")

if("Truth" %in% x) {
print("Truth is found")
} else {
print("Truth is not found")
}

当上面的代码被编译和执行时,它产生以下结果

[1] "Truth is not found"

这里“Truth”和“truth”是两个不同的字符串。

if ... else if ... else语句

if语句后面可以跟一个可选的else if ... else语句,这对于使用single if ... else if语句测试各种条件非常有用。

当使用if,else if,else语句有几点要记住。

  • 如果可以有零或一个else,它必须在任何其他if之后。
  • 一个if可以有0到许多else if和它们必须在else之前。
  • 一旦一个else如果成功,没有任何剩余的else if或else将被测试。

语法

在R中创建if ... else if ... else语句的基本语法是 -

if(boolean_expression 1) {
// Executes when the boolean expression 1 is true.
} else if( boolean_expression 2) {
// Executes when the boolean expression 2 is true.
} else if( boolean_expression 3) {
// Executes when the boolean expression 3 is true.
} else {
// executes when none of the above condition is true.
}

x <- c("what","is","truth")

if("Truth" %in% x) {
print("Truth is found the first time")
} else if ("truth" %in% x) {
print("truth is found the second time")
} else {
print("No truth found")
}

当上面的代码被编译和执行时,它产生以下结果

[1] "truth is found the second time"

Switch语句

switch语句允许根据值列表测试变量的相等性。 每个值都称为大小写,并且针对每种情况检查打开的变量。

语法

在R中创建switch语句的基本语法是

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

以下规则适用于switch语句:

  • 如果expression的值不是字符串,那么它被强制为整数。
  • 在交换机中可以有任意数量的case语句。 每个案例后面都跟要比较的值和冒号。
  • 如果整数的值在1和nargs() - 1(参数的最大数目)之间,则对case条件的相应元素求值并返回结果。
  • 如果表达式求值为字符串,那么该字符串与元素的名称匹配。
  • 如果有多个匹配,则返回第一个匹配元素。
  • 无默认参数可用。
  • 在没有匹配的情况下,如果有一个未命名的元素...它的值被返回。 (如果有多个这样的参数,则返回错误。)

流程图

x <- switch(
3,
"first",
"second",
"third",
"fourth"
)
print(x)

当上面的代码被编译和执行时,它产生以下结果

[1] "third"

本文转自:http://codingdict.com/article/2828

R语言 判断的更多相关文章

  1. R语言判断向量中是否存在一个元素

    判断ori_data[,1]中是否存在元素a: a %in% ori_data[,1] 如果存在返回 true,否则返回 false    

  2. R语言中判断是否是整数。以及读写excel

    今天接手一个重复性工作, 需要手工把产品运营们在excel里写的活动规则, 插入数据库表中.为了减少出错, 提高效率. 再加上最近刚刚学R语言, 就用R练练手, 自动生成mysql的sql语句. 一次 ...

  3. R语言常用函数:交集intersect、并集union、找不同setdiff、判断相同setequal

    在R语言进行数据分析时,经常需要找不同组间的相同和不同,那你应该掌握如下几个函数,让你事半功倍. 交集intersect两个向量的交集,集合可以是数字.字符串等 # 两个数值向量取交集intersec ...

  4. R语言-处理异常值或报错的三个示例

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html Tuesday, March 31, 2015 之前用rvest帮人写了一个定期抓取amazon ...

  5. R入门<三>-R语言实战第4章基本数据管理摘要

    入门书籍:R语言实战 进度:1-4章 摘要: 1)实用的包 forecast:用于做时间序列预测的,有auto.arima函数 RODBC:可以用来读取excel文件.但据说R对csv格式适应更加良好 ...

  6. 如何在R语言中使用Logistic回归模型

    在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...

  7. R语言解读多元线性回归模型

    转载:http://blog.fens.me/r-multi-linear-regression/ 前言 本文接上一篇R语言解读一元线性回归模型.在许多生活和工作的实际问题中,影响因变量的因素可能不止 ...

  8. R语言解读一元线性回归模型

    转载自:http://blog.fens.me/r-linear-regression/ 前言 在我们的日常生活中,存在大量的具有相关性的事件,比如大气压和海拔高度,海拔越高大气压强越小:人的身高和体 ...

  9. R语言实战(三)基本图形与基本统计分析

    本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...

随机推荐

  1. ORA-01000 error

    ORA-01000是最大开放游标错误,是Oracle数据库开发中极为常见的错误. 在Java的上下文中,当应用程序尝试打开更多ResultSet而不是数据库实例上的已配置游标时,会发生这种情况. 解决 ...

  2. kubernetes报错

    错误信息:执行yaml文件后,服务在运行,但是提示命令找不到 原因:没有环境,相当于只有一个快捷方式 环境目录为/usr/local/bin 解决办法:将/etc/ansible/bin下的文件都拷贝 ...

  3. codeforces round 433 C. Planning 贪心

    题目大意: 输入n,k,代表n列航班,初始始发实践为1,2,3分钟以此类推,然后输入n个整数分别代表延迟1分钟第i个航班损失多少钱,然后调整后的始发时间表是这样的,任何一辆航班的始发时间不能在他的初始 ...

  4. Linux服务器查看PHP是否支持mail()函数方法

    PHP的Mail函数可以用来发送邮件,如查看Linux服务器PHP是否支持Mail函数? PHP查看是否支持Mail函数的方法 Linux系统下的服务器,查看PHP是否支持Mail函数的方法有很多种: ...

  5. Vue学习笔记【21】——Vue中的动画(v-for 的列表过渡)

    定义过渡样式:  <style>    .list-enter,    .list-leave-to {      opacity: 0;      transform: translat ...

  6. 每天一个Linux命令:pwd(3)

    pwd pwd是Print Working Directory的缩写,其功能是显示当前所在工作目录的全路径.主要用在当不确定当前所在位置时,通过pwd来查看当前目录的绝对路径 格式 pwd [选项] ...

  7. 【LeetCode 19】删除链表的倒数第N个节点

    题目链接 [题解] 经典的一道题. 让p1指向链表的第一个元素. 让p2指向链表的第二个元素. 然后让他们俩同时往后移动. 直到p2到达链表的尾巴. 这时p1和p2之间总是隔了n-1个元素. 所以p1 ...

  8. bzoj1044题解

    [题意分析] 本题等价于如下描述: 有一个长度为n的正整数序列,要求将其分解成m+1个子串,使最大子串和最小.求这个最大子串和及对应的分解方案数. [解题思路] 第一问二分+贪心即可.容易证明对于确定 ...

  9. 树————N叉树的层序遍历

    思想: 使用队的思想,将每一层的节点放入队列中,依次弹出,同时将其children放入队列. c++ /* // Definition for a Node. class Node { public: ...

  10. Java习题10.24

    Java习题10.24 1. 1,3.connect()与accept():这两个系统调用用于完成一个完整相关的建立,其中connect()用于建立连接.accept()用于使服务器等待来自某客户进程 ...