首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于一个以另一个模式为条件的模式来过滤数据

基于一个以另一个模式为条件的模式来过滤数据
EN

Stack Overflow用户
提问于 2021-04-30 09:39:45
回答 1查看 32关注 0票数 0

我似乎无法理解一个看似简单的任务:如何根据一列()中的模式过滤数据,但是,只有当另一列中的一个模式匹配时,才能匹配:

数据:

代码语言:javascript
复制
df <- data.frame(
  Speaker = c("A", NA, "B", "C", "A", "B", "A", "B", "C"),
  Utterance = c("uh-huh",                       
                "(0.666)",                     
                "WOW!",                        
                "#yeah#",               
                "=right=",             
                "oka::y¿",               
                "okay",                   
                "some stuff",             
                "!more! £TAlk£"),        
  Orthographic = c("uh-huh", "NA", "wow", "yeah", "right", "okay", "okay", "some stuff", "more talk")
)

我希望在df中删除模式^(yeah|okay|right|mhm|mm|uh(-| )?huh)$与列Orthographic 中的模式匹配的行,但不删除中的行,如果这些行包含来自Utterance列中的字符类[A-Z:↑↓£#¿?!]的任何字符。

预期结果

代码语言:javascript
复制
df
  Speaker     Utterance Orthographic
3       B          WOW!          wow
4       C        #yeah#         yeah
6       B       oka::y¿         okay
8       B    some stuff   some stuff
9       C !more! £TAlk£    more talk

尝试到目前为止,:(过滤太多了!)

代码语言:javascript
复制
library(dplyr)
df %>%
  filter(!is.na(Speaker)) %>%      
  filter(!grepl("^(yeah|okay|right|mhm|mm|uh(-| )?huh)$", Orthographic) 
         & grepl("[A-Z:↑↓£#¿?!]", Utterance))
  Speaker     Utterance Orthographic
1       B          WOW!          wow
2       C !more! £TAlk£    more talk
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-30 09:45:59

我想你需要|

代码语言:javascript
复制
library(dplyr)

df %>%
  filter(!is.na(Speaker)) %>%
  filter(!grepl("^(yeah|okay|right|mhm|mm|uh(-| )?huh)$", Orthographic) 
         | grepl("[A-Z:↑↓£#¿?!]", Utterance))

#  Speaker     Utterance Orthographic
#1       B          WOW!          wow
#2       C        #yeah#         yeah
#3       B       oka::y¿         okay
#4       B    some stuff   some stuff
#5       C !more! £TAlk£    more talk

保留没有^(yeah|okay|right|mhm|mm|uh(-| )?huh)$[A-Z:↑↓£#¿?!]的行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67331605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档