使用Dplyr在R语言中通过多个条件过滤数据 您所在的位置:网站首页 r语言筛选重复数据 使用Dplyr在R语言中通过多个条件过滤数据

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

2024-01-23 21:43| 来源: 网络整理| 查看: 265

使用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%和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


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有