如何在 r 中编写嵌套的 if else 语句(附示例)


基础 R 中的ifelse()函数可用于编写快速的 if-else 语句。该函数使用以下语法:

ifelse(测试,是,否)

金子:

  • 测试:逻辑测试
  • yes:逻辑测试为 True 时返回的值
  • no:逻辑测试为 False 时返回的值

本教程介绍如何使用此函数在 R 中编写 if else 语句以及嵌套 if else 语句,使用以下数据框:

 #create data frame
df <- data.frame(team = c('A', 'A', 'B', 'B', 'B', 'C', 'D'),
                 points = c(4, 7, 8, 8, 8, 9, 12),
                 rebounds = c(3, 3, 4, 4, 6, 7, 7))

#view data frame
df

  team points rebounds
1 to 4 3
2 to 7 3
3 B 8 4
4 B 8 4
5 B 8 6
6 C 9 7
7 D 12 7

示例 1:如何编写基本的 If else 语句

以下代码显示如何在数据框中创建一个新列,其值基于“team”列的值:

 #create new column in data frame
df$rating <- ifelse (df$team == ' A ', ' great ', ' bad ')

#view data frame
df

  team points rebounds rating
1 A 4 3 great
2 A 7 3 great
3 B 8 4 bad
4 B 8 4 bad
5 B 8 6 bad
6 C 9 7 bad
7 D 12 7 bad

这个简单的 ifelse 语句告诉 R 执行以下操作:

  • 如果球队栏中的值为“A”,则给予该球员“优秀”评级。
  • 否则,就错过了“可怜”的球员。

示例 2:如何编写嵌套的 If Else 语句

以下代码显示如何通过编写嵌套的 if else 语句在数据框中创建新列:

 #create new column in data frame
df$rating <- ifelse (df$team == ' A ', ' great ',
               ifelse (df$team == ' B ', ' OK ', ' bad '))

#view data frame
df

  team points rebounds rating
1 A 4 3 great
2 A 7 3 great
3 B 8 4 OK
4 B 8 4 OK
5 B 8 6 OK
6 C 9 7 bad
7 D 12 7 bad

这个嵌套的 ifelse 语句告诉 R 执行以下操作:

  • 如果球队栏中的值为“A”,则给予该球员“优秀”评级。
  • 否则,如果球队列中的值为“B”,则为该球员评分为“OK”。
  • 否则,就错过了“可怜”的球员。

示例 3:如何编写更长的嵌套 If else 语句

以下代码演示了如何通过编写更长的嵌套 if else 语句在数据框中创建新列:

 #create new column in data frame
df$rating <- ifelse (df$team == ' A ', ' great ',
               ifelse (df$team == ' B ', ' OK ',
                 ifelse (df$team == ' C ', ' decent ', ' bad ')))

#view data frame
df

  team points rebounds rating
1 A 4 3 great
2 A 7 3 great
3 B 8 4 OK
4 B 8 4 OK
5 B 8 6 OK
6 C 9 7 decent
7 D 12 7 bad

这个嵌套的 ifelse 语句告诉 R 执行以下操作:

  • 如果球队栏中的值为“A”,则给予该球员“优秀”评级。
  • 否则,如果球队列中的值为“B”,则为该球员评分为“OK”。
  • 否则,如果球队栏中的值为“C”,则给予该球员“体面”评级。
  • 否则,就错过了“可怜”的球员。

请注意,您可以使用此精确模式来编写嵌套的 ifelse 语句,只要您愿意。

您可以在此处找到更多 R 教程。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注