迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 R 中使用 if 和 if...else 语句

作者:迹忆客 最近更新:2023/03/21 浏览次数:

本文描述了 R 的 ifif-else 条件结构的正确语法。

请注意 ,如果 if 构造基于数据帧或向量元素的行,则仅使用第一个元素。

R 中 if 语句的语法

if 结构的有效形式如下:

if(condition)
    statement to execute

if(condition){
    statement 1
    statement 2
}

如果没有括号,if 块将仅在条件为真时评估一个语句或表达式。即使条件为假,其他人也会被执行。

示例代码:

j = 15
if(j < 12)
    print(j+1)
    print("This should not print if j >= 12.")
print(j)

输出:

> j = 15
> if(j < 12)
+   print(j+1)
>   print("This should not print if j >= 12.")
[1] "This should not print if j >= 12."
> print(j)
[1] 15

if 之后的第二个语句被评估,因为我们没有使用括号。

如果条件为真,我们需要使用括号来评估多个语句。

示例代码:

j = 53
if(j < 46){
    print(j+1)
    print("This should not print if j >= 46.")}
print(j)

输出:

> j = 53
> if(j < 46){
+   print(j+1)
+   print("This should not print if j >= 46.")}
> print(j)
[1] 53

R 中 else 语句的正确形式

else 关键字必须与 if 后面的表达式的末尾放在同一行。以下代码引发错误。

示例代码:

j = 18
if(j < 28)
    print(j)
else
    print("Not lower than 28.")

输出:

> j = 18
> if(j < 28)
+   print(j)
[1] 18
> else
Error: unexpected 'else' in "else"
>   print("Not lower than 28.")
[1] "Not lower than 28."

正确的形式如下所示。

示例代码:

j = 8
if(j < 15)
    print(j) else
        print("Not less than 15.")

输出:

> j = 8
> if(j < 15)
+   print(j) else
+     print("Not less than 15.")
[1] 8

使用括号有助于使我们的代码更具可读性并避免错误。现在,将 else 关键字放在 if 块后面的右括号所在的行。

示例代码:

k = 101
if(k <= 100){
    print("k is not more than 100.")
} else {
    print("k is more than 100.")
}

输出:

> k = 101
> if(k <= 100){
+   print("k is not more than 100.")
+ } else {
+   print("k is more than 100.")
+ }
[1] "k is more than 100."

在 R 中使用多个 ifelse 语句

使用一系列条件结构时需要考虑几点。这些在大多数语言中都很常见。

  • 当使用多个条件时,我们编写它们的顺序很重要。

  • 如果我们使用一连串的 ifelse 语句,以 else 语句结尾,对应于第一个真条件或 else 条件的语句将被执行。

  • 如果我们使用一系列 if 语句,可能会有多个条件为真。

  • 如果我们不使用最后的 else 语句,则不会执行任何语句。

示例代码:

jk  = 155

# Wrong Order
if(jk < 300){
    print("Less than 300.")
} else if (jk < 200) {
    print("Less than 200.")
} else if (jk < 100) {
    print("Less than 100.")
}

# Correct Order
if(jk < 100){
    print("Less than 100.")
} else if (jk < 200) {
    print("Less than 200.")
} else if (jk < 300) {
    print("Less than 300.")
}

# Multiple conditions satisfied. No else statements.
if(jk < 100){
    print("Less than 100.")
}
if (jk < 200) {
    print("Less than 200.")
}
if (jk < 300) {
    print("Less than 300.")
}

# Last else to cover remaining cases.
if(jk < 15){
    print("Less than 15.")
} else if (jk < 25) {
    print("Less than 25.")
} else if (jk < 35) {
    print("Less than 35.")
} else {
    print("Not less than 35.")
}

# NO last else; no condition may be met.
if(jk < 15){
    print("Less than 15.")
} else if (jk < 25) {
    print("Less than 25.")
} else if (jk < 35) {
    print("Less than 35.")
}

输出:

> jk  = 155
>
> # Wrong Order
> if(jk < 300){
+   print("Less than 300.")
+ } else if (jk < 200) {
+   print("Less than 200.")
+ } else if (jk < 100) {
+   print("Less than 100.")
+ }
[1] "Less than 300."
>
> # Correct Order
> if(jk < 100){
+   print("Less than 100.")
+ } else if (jk < 200) {
+   print("Less than 200.")
+ } else if (jk < 300) {
+   print("Less than 300.")
+ }
[1] "Less than 200."
>
> # Multiple conditions satisfied. No else statements.
> if(jk < 100){
+   print("Less than 100.")
+ }
> if (jk < 200) {
+   print("Less than 200.")
+ }
[1] "Less than 200."
> if (jk < 300) {
+   print("Less than 300.")
+ }
[1] "Less than 300."
>
> # Last else to cover remaining cases.
> if(jk < 15){
+   print("Less than 15.")
+ } else if (jk < 25) {
+   print("Less than 25.")
+ } else if (jk < 35) {
+   print("Less than 35.")
+ } else {
+   print("Not less than 35.")
+ }
[1] "Not less than 35."
>
> # NO last else; no condition may be met.
> if(jk < 15){
+   print("Less than 15.")
+ } else if (jk < 25) {
+   print("Less than 25.")
+ } else if (jk < 35) {
+   print("Less than 35.")
+ }

要对数据框列的值使用 if 条件,请阅读 R 的矢量化 ifelse() 函数

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

R 中具有多个条件的函数向量化

发布时间:2023/03/21 浏览次数:64 分类:编程语言

一项常见的数据分析任务是根据同一行的其他列使用一个或多个条件创建或更新数据框列。 如果我们尝试使用 if 语句来执行此操作,则只会使用第一行来测试条件,并且会根据该行更

在 R 中读取 xlsx 文件

发布时间:2023/03/21 浏览次数:66 分类:编程语言

在这篇文章中,你将会了解到两个在 R 中读取 xlsx 文件的最完整和最容易使用的库:readxl 和 openxlsx。

清理 R 的环境

发布时间:2023/03/21 浏览次数:178 分类:编程语言

在本教程中,你将学习如何在 R 中编写一个函数,在不需要重新启动 R 的情况下清除环境。

在 R 中注释掉多行

发布时间:2023/03/21 浏览次数:63 分类:编程语言

在本文中,你将学习如何在 R 中注释出多行,而不必在每一行的开头手动写一个#字符来注释。

在 R 中清除内存

发布时间:2023/03/21 浏览次数:197 分类:编程语言

在本教程中,你将学习如何清除 R 系统占用的内存,而不必重新启动它或重新启动它运行的计算机。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便