A:如何将 grepl 与多个模型一起使用
您可以使用以下基本语法和 R 中的grepl()函数来过滤数据框中包含特定列中的多个字符串模式之一的行:
library (dplyr) new_df <- filter(df, grepl(paste(my_patterns, collapse=' | '), my_column))
此特定语法会筛选数据帧中名为my_column的列的值包含名为my_patterns的向量中的字符串模式之一的行。
以下示例展示了如何在实践中使用此语法。
示例:如何在 R 中对多个模型使用 grepl()
假设我们在 R 中有以下数据框,其中包含有关各个篮球队的信息:
#create data frame df <- data. frame (team=c('Mavs', 'Hawks', 'Nets', 'Heat', 'Cavs'), points=c(104, 115, 124, 120, 112), status=c('Bad', 'Good', 'Excellent', 'Great', 'Bad')) #view data frame df team points status 1 Mavs 104 Bad 2 Hawks 115 Good 3 Nets 124 Excellent 4 Heat 120 Great 5 Cavs 112 Bad
假设我们要过滤数据框以仅包含状态列字符串包含以下字符串模式之一的行:
- ‘好的’
- ‘灰色的’
- ‘前任’
我们可以使用以下语法和grepl()函数来执行此操作:
library (dplyr) #define patterns to search for my_patterns <- c(' Good ', ' Gre ', ' Ex ') #filter for rows where status column contains one of several strings new_df <- filter(df, grepl(paste(my_patterns, collapse=' | '), status)) #view results new_df team points status 1 Hawks 115 Good 2 Nets 124 Excellent 3 Heat 120 Great
请注意,数据框已被过滤为仅包含状态列中的字符串包含我们指定的三种模式之一的行。
请注意,使用带有参数Collapses=’|’的Paste()函数我们实际上在状态列中查找字符串“Good|Gre|Ex”。
自从| R中的符号表示“OR”,我们能够在状态栏中找到包含“Good”或“Gre”或“Ex”的行。
其他资源
以下教程解释了如何在 R 中执行其他常见任务:
如果列包含字符串,如何使用 dplyr 改变变量
如何使用 dplyr 从字符串中删除第一个字符
如何使用 dplyr 替换列中的字符串