R语言 使用Dplyr过滤包含特定字符串的行 您所在的位置:网站首页 R语言文字向量 R语言 使用Dplyr过滤包含特定字符串的行

R语言 使用Dplyr过滤包含特定字符串的行

2023-12-25 04:45| 来源: 网络整理| 查看: 265

R语言 使用Dplyr过滤包含特定字符串的行

在这篇文章中,我们将学习如何使用R编程语言中的dplyr包来过滤包含特定字符串的行。

使用的函数

用于执行这项任务的两个主要函数是。

filter() : dplyr包的filter函数将被用来根据条件过滤行。

语法 : filter(df , condition)

参数:

df: 数据框对象 condition: 用于过滤数据的条件

grepl(): grepl()函数将用于在向量中找到指定的字符串模式时返回TRUE,如果没有找到则返回FALSE。

语法 :grepl(pattern, string, ignore.case=FALSE)

参数:

pattern :正则表达式模式 string :要搜索的字符向量 ignore.case :在搜索中是否忽略大小写。这里ignore.case是一个可选的参数,默认设置为FALSE。 使用中的数据帧 马克 年龄 角色 20.1 21 软件工程师 30.2 22 软件开发 40.3 23 数据分析师 50.4 24 数据工程师 60.5 25 前端开发 筛选包含给定字符串的行

这里我们必须在 grepl() 函数中传递要搜索的字符串和要搜索的列,这个函数根据filter()函数打印的行来返回真或假。

语法: df %>% filter(grepl('Pattern', column_name))

参数

df: 数据框架对象

grepl(): 查找模式 字符串 “Pattern ” : 要找到的模式(字符串) column_name : 模式(字符串)将在这一列中被搜索到

例子

library(dplyr) df % filter(grepl('Dev', roles))

输出

marks age roles 1 30.2 22 Software Dev 2 60.5 25 FrontEnd Dev 过滤不包含给定字符串的行

请注意,这段代码与上面的方法的唯一区别是,这里我们使用了一个 ‘!’not 操作符,这个操作符通过将TRUE转换为FALSE来反转 grepl() 函数提供的输出,反之亦然,这样的结果是只打印不包含模式的行, ,过滤掉包含模式的行。

语法 : df %>% filter(!grepl('Pattern', column_name))

参数 :

df : 数据框架对象 grepl (): 查找模式字符串 “Pattern ” : 要找到的模式(字符串) column_name : 模式(字符串)将在这一列中被搜索到

例子

library(dplyr)    df % filter(!grepl('Eng.', roles))

输出

marks age roles 1 30.2 22 Software Dev 2 40.3 23 Data Analyst 3 60.5 25 FrontEnd Dev 过滤含有多个模式(字符串)的行

这段代码也与上面的方法类似,唯一的区别是在 grepl() 函数中传递多个pattern(string)时,用 OR ( ‘ | ‘)操作符将这些pattern分开。这将打印出所有包含指定模式的行。

语法:

df %>% filter(grepl( **' Patt.1 | Patt.2** ', column_name))

例子 :

library(dplyr)    df % filter(grepl('Dev|Eng.', roles))

输出

marks age roles 1 20.1 21 Software Eng. 2 30.2 22 Software Dev 3 50.4 24 Data Eng. 4 60.5 25 FrontEnd Dev 过滤不包含多个模式(字符串)的行

这段代码与上面的方法类似,唯一不同的是我们使用了 ‘!’not 操作符,这个操作符通过将TRUE转换为FALSE来反转 grepl() 函数提供的输出,反之亦然,这样做的结果是只打印出不包含指定多重模式的行, ,过滤掉包含模式的行。

语法:

df %>% filter(!grepl('Patt.1 | Patt.2', column_name))

例子 :

library(dplyr)    df % filter(!grepl('Data|Front', roles))

输出

marks age roles 1 20.1 21 Software Eng. 2 30.2 22 Software Dev


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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