R语言 使用Dplyr过滤包含特定字符串的行 | 您所在的位置:网站首页 › R语言文字向量 › R语言 使用Dplyr过滤包含特定字符串的行 |
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 实验室设备网 版权所有 |