使用Dplyr在R语言中通过多个条件过滤数据

使用Dplyr在R语言中通过多个条件过滤数据

在这篇文章中,我们将学习如何在R编程语言中使用dplyr包按多个条件过滤数据框。

filter() 函数被用来产生一个数据框架的子集,保留所有满足指定条件的行。R编程语言中的filter()方法可以应用于分组和未分组的数据。表达式包括比较运算符(==, >, >=),逻辑运算符(&, |, !, xor()),范围运算符(between(), near()),以及针对列值的NA值检查。子集数据框必须保留在一个单独的变量中。

方法1:直接使用 filter()

对于这一点,只需将要检查的条件传递给filter函数,该函数会自动检查数据框,并检索出满足条件的行。

语法 :filter(df , condition)

参数:

df: 数据框架对象

条件: 根据该条件进行过滤

例子: 使用filter()函数过滤行的R程序

library(dplyr)
 
# sample data
df=data.frame(x=c(12,31,4,66,78),
              y=c(22.1,44.5,6.1,43.1,99),
              z=c(TRUE,TRUE,FALSE,TRUE,TRUE))
 
# condition
filter(df, x<50 & z==TRUE)

输出

   x    y    z
1 12 22.1 TRUE
2 31 44.5 TRUE

方法2:使用%>%和filter()。

当你在处理 大的条件集时,这种方法被认为是一种比较干净的方法,因为数据框架是用%>%来引用的,然后通过filter()函数来应用条件。

语法: df %>% filter ( condition )

参数

df : 数据框架对象

条件 :根据该条件进行过滤

例子: 使用%>%过滤的R程序

library(dplyr)
 
df=data.frame(x=c(12,31,4,66,78),
              y=c(22.1,44.5,6.1,43.1,99),
              z=c(TRUE,TRUE,FALSE,TRUE,TRUE))
 
df %>%
  filter(y < 45, z != FALSE)

输出

 x    y    z
1 12 22.1 TRUE
2 31 44.5 TRUE
3 66 43.1 TRUE

方法3:用过滤器()使用NA

is.na() 函数接受一个值,如果它是一个 NA 值,则返回 TRUE ,如果它不是一个 NA 值,则 返回 FALSE

语法: df %>% filter(!is.na(x))

参数:

is.na() : 要求检查该值是否为NA值

x :数据框架对象的列。

示例: 使用NA过滤数据框架的R程序

library(dplyr)
 
df=data.frame(x=c(12,31,NA,NA,NA),
              y=c(22.1,44.5,6.1,10,99),
              z=c(TRUE,TRUE,FALSE,TRUE,TRUE))
 
df %>% filter(!is.na(x))

输出

   x    y    z
1 12 22.1 TRUE
2 31 44.5 TRUE

方法4:使用 ‘%in%’ 运算符和filter()。

%in% 运算符用于只过滤出包含向量中提供的数据的列。

语法: filter( column %in% c("data1", "data2″.... "data N"))

参数

column :数据框架的列名

c("data1", "data2″.... "data N"): 一个包含要找到并打印的数据名称的向量。

例子: R程序使用%in% 来过滤数据框架

library(dplyr)
 
df=data.frame(x=c(12,31,10,2,99),
              y=c(22.1,44.5,6.1,10,99),
              z=c("Apple","Guava", "Mango", "Apple","Mango"))
 
df %>%
 filter(z %in% c("Apple", "Mango"))

输出

   x    y     z
1 12 22.1 Apple
2 10  6.1 Mango
3  2 10.0 Apple
4 99 99.0 Mango

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程