查看原文
其他

R语言决策结构,if语句,if..else语句

2017-09-04 miffery 临床科研与meta分析


在R语言中创建if语句的基本模式

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

R

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

if语句的流程图如下 -

> x<-9 > if(is.numeric(x)){ +    print("x is a numberic") + } [1] "x is a numberic"

在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.}

R

如果布尔表达式求值为真(true),那么将执行if语句中的代码块,否则将执行else语句中的代码块。

if...else语句的流程图如下 -

> x<-9 > if(is.integer(x)){ +    print("x is a integer") + } else { +    print("x is a numberic") + } [1] "x is a numberic"

if…else if…else语句

一个if语句可以跟随一个可选的else if...else语句,这对使用单个if...else else语句来测试各种条件非常有用。

当使用ifelse if, else语句时要注意几点。

  • if语句可以有零个或一个else,但如果有else if语句,那么else语句必须在else if语句之后。

  • if语句可以有零或多else if语句,else if语句必须放在else语句之前。

  • 当有一个else if条件测试成功,其余的else...ifelse将不会被测试。

语法

> y<-10 > if(y>11){ +    print("yes, i am right") + } else if(y>15){ +    print("you are right") + } else { +    print("he is right") + }[1] "he is right"

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

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

R

以下规则适用于switch语句 -

  • 如果表达式的值不是字符串,则被强制转化为整数。

  • switch内可有任意数量的case语句。 每个case语句后跟要比较的值和冒号。

  • 如果整数的值在1nargs() - 1(最大参数数)之间,则对条件的相应元素进行求值并返回结果。

  • 如果表达式计算为字符串,则该字符串与元素的名称匹配(正好)。

  • 如果有多个匹配,则返回第一个匹配元素。

  • 没有默认参数可使用。

  • 在不匹配的情况下,如果有一个未命名的元素,则返回其值。(如果有多个此类参数返回错误)。

在R语言中switch语句的流程图 -

x<-3
 switch(x,2+2,mean(1:10),rnorm(4))   执行的是rnorm(4)

x<-2
 switch(x,2+2,mean(1:10),rnorm(4))  执行的是mean(1:10)

> switch("cc",a=1,cc=,cd=,d=2) [1] 2 > switch("a",a=1,cc=,cd=,d=2) [1] 1 > switch("cd",a=1,cc=,cd=,d=2) [1] 2 > switch("cd",a=1,cc=,cd=4,d=2) [1] 4


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存