如何在 dplyr 中将 select_if 与多个条件一起使用
您可以使用以下基本语法和dplyr包的select_if()函数来选择数据框中满足多个条件之一的列:
df %>% select_if( function (x) condition1 | condition2)
以下示例展示了如何在实践中使用此语法。
示例 1:将 select_if() 与类类型一起使用
以下代码演示如何使用select_if()函数选择数据框中具有字符或数字类类型的列:
library (dplyr) #create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), conference=as. factor (c('W', 'W', 'W', 'E', 'E')), points_for=c(99, 90, 86, 88, 95), points_against=c(91, 80, 88, 86, 93)) #select all character and numeric columns df %>% select_if( function (x) is. character (x) | is. numeric (x)) team points_for points_against 1 A 99 91 2 B 90 80 3 C 86 88 4 D 88 86 5 E 95 93
请注意,会返回单字符列 ( team ) 和两个数字列 ( point_for和points_against ),而不会返回 Factors 列 ( conference )。
示例 2:将 select_if() 与类类型和列名称结合使用
以下代码演示如何使用select_if()函数选择数据框中具有因子类类型或points_for列名称的列:
library (dplyr) #create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), conference=as. factor (c('W', 'W', 'W', 'E', 'E')), points_for=c(99, 90, 86, 88, 95), points_against=c(91, 80, 88, 86, 93)) #select all factor columns and 'points_for' column df %>% select_if( function (x) is. factor (x) | all(x == .$points_for)) conference points_for 1 W 99 2W 90 3 W 86 4 E 88 5 E 95
请注意,返回了单因子列和标记为points_for的列。
注: |符号是 R 中的逻辑“OR”运算符。请随意使用|符号,因为您想要使用两个以上的条件来选择列。
其他资源
以下教程解释了如何使用 dplyr 中的其他常用函数:
如何在 dplyr 中使用 across() 函数
如何在 dplyr 中使用 relocate() 函数
如何在 dplyr 中使用 slice() 函数