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 循环