A:如何使用具有多个条件的if语句


您可以使用以下方法在 R 中使用具有多个条件的 IF 语句创建新列:

方法一:使用 OR 的多个条件的 If 语句

 df$new_var <- ifelse(df$var1>15 | df$var2>8, " value1 ", " value2 ")

方法 2:使用 AND 的多个条件的 If 语句

 df$new_var <- ifelse(df$var1>15 & df$var2>8, “ value1 ”, “ value2 ”) 

以下示例展示了如何在实践中使用以下数据框使用每种方法:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(8, 8, 10, 13, 17, 19, 22, 25),
                 assists=c(5, 10, 9, 6, 8, 10, 11, 12))

#view data frame
df

  team points assists
1 to 8 5
2 to 8 10
3 to 10 9
4 to 13 6
5 B 17 8
6 B 19 10
7 B 22 11
8 B 25 12

示例 1:使用 OR 的具有多个条件的 If 语句

以下代码演示如何创建一个名为rating的新列,如果得分列大于 15助攻列大于 8,则该列分配“良好”值。

否则,它分配值“bad”:

 #create new "rating" column using if statement with multiple conditions
df$rating <- ifelse(df$points>15 | df$assists>8, " good ", " bad ")

#view updated data frame
df

  team points assists rating
1 A 8 5 bad
2 to 8 10 good
3 A 10 9 good
4 A 13 6 bad
5 B 17 8 good
6 B 19 10 good
7 B 22 11 good
8 B 25 12 good

每个玩家都会在新创建的评级栏中收到“好”或“坏”的值。

请注意|该运算符在 R 中用作“或”语句。

示例 2:使用 AND 的具有多个条件的 If 语句

以下代码演示如何创建一个名为rating的新列,如果得分列大于 15并且助攻列大于 8,则该列分配“良好”值。

否则,它分配值“bad”:

 #create new "rating" column using if statement with multiple conditions
df$rating <- ifelse(df$points>15 & df$assists>8, “ good ”, “ bad ”)

#view updated data frame
df

  team points assists rating
1 A 8 5 bad
2 A 8 10 bad
3 A 10 9 bad
4 A 13 6 bad
5 B 17 8 bad
6 B 19 10 good
7 B 22 11 good
8 B 25 12 good

每个玩家都会在新创建的评级栏中收到“好”或“坏”的值。

请注意, &运算符在 R 中用作“and”语句。

其他资源

以下教程解释了如何在 R 中执行其他常见操作:

如何在 R 中编写嵌套的 If Else 语句
如何在 R 中编写嵌套的 For 循环

添加评论

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