小白教程
所有教程
关于
Search
172.71.254.193
172.71.254.193
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“R 判断语句”的源代码
本页内容
上一节:
R_数据类型
下一节:
R_循环
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:R 判断语句}}[[Category:R 教程|7]] = R 判断语句 = 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 下面是大多数编程语言中典型的判断结构的一般形式: R 语言提供了以下类型的判断语句: * if 语句 * if...else 语句 * switch 语句 === if 语句 === 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 语法格式如下: <sample title="" desc="" lang="r" hererun="1"> if(boolean_expression) { // 布尔表达式为真将执行的语句 } </sample> 如果布尔表达式 boolean_expression 为 ture 执行这里面的代码,如果 为 false 则不执行。 <sample title="" desc="" lang="r" hererun="1"> x <- 50L if(is.integer(x)) { print("X 是一个整数") } </sample> 执行以上代码,输出结果为: <sample title="" desc="" lang="r" hererun="1"> [1] "X 是一个整数" </sample> === if...else 语句 === 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。 语法格式如下: <sample title="" desc="" lang="r" hererun="1"> if(boolean_expression) { // 如果布尔表达式为真将执行的语句 } else { // 如果布尔表达式为假将执行的语句 } </sample> 如果布尔表达式 boolean_expression 为 true,则执行 if 块内的代码。如果布尔表达式为 false,则执行 else 块内的代码。 <sample title="" desc="" lang="r" hererun="1"> x <- c("google","xiaobai","taobao") if("xiaobai" %in% x) { print("包含 xiaobai") } else { print("不包含 xiaobai") } </sample> 执行以上代码,输出结果为: <sample title="" desc="" lang="r" hererun="1"> [1] "包含 xiaobai" </sample> 如果有多个条件判断,可以使用 if...else if...else: <sample title="" desc="" lang="r" hererun="1"> if(boolean_expression 1) { // 如果布尔表达式 boolean_expression 1 为真将执行的语句 } else if( boolean_expression 2) { // 如果布尔表达式 boolean_expression 2 为真将执行的语句 } else if( boolean_expression 3) { // 如果布尔表达式 boolean_expression 3 为真将执行的语句 } else { // 以上所有的布尔表达式都为 false 时执行 } </sample> <sample title="" desc="" lang="r" hererun="1"> x <- c("google","xiaobai","taobao") if("weibo" %in% x) { print("第一个 if 包含 weibo") } else if ("xiaobai" %in% x) { print("第二个 if 包含 xiaobai") } else { print("没有找到") } </sample> 执行以上代码,输出结果为: <sample title="" desc="" lang="r" hererun="1"> [1] "第二个 if 包含 xiaobai" </sample> === switch 语句 === 一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case。 语法格式如下: <sample title="" desc="" lang="r" hererun="1"> switch(expression, case1, case2, case3....) </sample> '''switch''' 语句必须遵循下面的规则: * '''switch''' 语句中的 '''expression''' 是一个常量表达式,可以是整数或字符串,如果是整数则返回对应的 case 位置值,如果整数不在位置的范围内则返回 NULL。 * 如果匹配到多个值则返回第一个。 * '''expression'''如果是字符串,则对应的是 case 中的变量名对应的值,没有匹配则没有返回值。 * switch 没有默认参数可用。 以下实例返回第三个值: <sample title="" desc="" lang="r" hererun="1"> x <- switch( 3, "google", "xiaobai", "taobao", "weibo" ) print(x) </sample> 执行以上代码,输出结果为: <sample title="" desc="" lang="r" hererun="1"> [1] "taobao" </sample> 如果是字符串返回字符串变量对应的值: <sample title="" desc="" lang="r" hererun="1"> you.like<-"xiaobai" switch(you.like, google="www.google.com", xiaobai = "www.xiaobai.wang", taobao = "www.taobao.com") </sample> 执行以上代码,输出结果为: <sample title="" desc="" lang="r" hererun="1"> [1] "www.xiaobai.wang" </sample> 如果整数不在范围内的则返回 NULL <sample title="" desc="" lang="r" hererun="1"> > x <- switch(4,"google","xiaobai","taobao") > x NULL > x <- switch(4,"google","xiaobai","taobao") > x NULL </sample>
返回至“
R 判断语句
”。
上一节:
R_数据类型
下一节:
R_循环