A:如何在多个条件下使用which()函数


您可以使用以下方法在 R 中使用具有多个条件的which()函数:

方法 1:which() 与多个条件使用 AND

 new_df <- df[which(df$my_column >= 14 & df$my_column <= 25), ]

方法 2:which() 与多个条件使用 OR

 new_df <- df[which(df$my_column < 14 | df$my_column > 25), ] 

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

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'),
                 points=c(10, 13, 13, 15, 19, 22, 24, 25, 29, 35))

#view data frame
df

   player points
1 to 10
2 B 13
3 C 13
4 D 15
5 E 19
6 F 22
7 G 24
8:25 a.m.
9 I 29
10 D 35

示例 1:which() 具有使用 AND 的多个条件

以下代码显示如何使用which()函数过滤数据框以仅包含points列中的值大于或等于14小于或等于25的行:

 #filter for players who score between 14 and 25 points
new_df <- df[which(df$points >= 14 & df$points <= 25), ]

#view results
new_df

  player points
4 D 15
5 E 19
6 F 22
7 G 24
8:25 a.m.

请注意,数据框被过滤为仅包含列中的值大于或等于 14小于或等于 25 的行。

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

示例 2:which() 与使用 OR 的多个条件

以下代码显示如何使用which()函数过滤数据框以仅包含列中的值小于14大于25的行:

否则,它分配值“bad”:

 #filter for players who score less than 14 or greater than 25 points
new_df <- df[which(df$points < 14 | df$points > 25), ]

#view results
new_df

   player points
1 to 10
2 B 13
3 C 13
9 I 29
10 D 35

请注意,数据框被过滤为仅包含列中的值小于 14大于 25 的行。

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

其他资源

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

如何在 R 中使用具有多个条件的 If 语句
如何在 R 中编写嵌套的 If Else 语句
如何在 R 中编写嵌套的 For 循环

添加评论

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