在R中使用grep和子集的多重过滤

方安德

我正在尝试创建一个过滤器,以使用grep和子集一起从数据集中删除行。

样本数据集:

id <- 1:10
problem <- c("a" , "b", "c", "d", "a","b","c","a", "b", "a")
solution1 <- c("eat", "sleep", "drink", "play", "sleep", "play", "play", "drink", "play", "eat")
solution2 <- c("read", "read", "eat", "drink", "eat", "sleep", "eat", "read", "eat", "play")
df <- c(id, problem, solution1, solution2)

我正在尝试删除问题为“ a”的那些行,并在solution1或solution2中都包含“ eat”。

结果是应删除ID 1、5和10。

我试过使用:

df <- subset(df, problem=="a" & !(grepl("eat", df)))

df <- df[!grepl("eat", df) & grepl("a", df$problem)]

在StackOverflow或我用Google搜索的其他网站上似乎找不到类似的解决方案。

如果有人可以帮助,将不胜感激。谢谢!

多米尼克·科托伊斯(Dominic Comtois)

首先,如果要使用数据框,则应使用data.frame而不是c:

df <- data.frame(id, problem, solution1, solution2)

然后,您可以例如这样子集(本身无需使用子集)

df2 <- df[!(grepl("a", df$problem) & 
           (grepl("eat", df$solution1) |
            grepl("eat", solution2))),]

#   id problem solution1 solution2
# 2  2       b     sleep      read
# 3  3       c     drink       eat
# 4  4       d      play     drink
# 6  6       b      play     sleep
# 7  7       c      play       eat
# 8  8       a     drink      read
# 9  9       b      play       eat

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在R中使用grep和子集的多重过滤

来自分类Dev

如何在R中使用grep选择精确匹配来对数据帧进行子集化

来自分类Dev

在HTML表格中使用Javascript进行下拉式多重过滤

来自分类Dev

在data.table中使用grep进行子集化-unpredicatble

来自分类Dev

使用jQuery的多重过滤

来自分类Dev

在R中使用for函数进行子集

来自分类Dev

在R中的ggplot中使用相同的列名称对数据帧进行子集和绘图

来自分类Dev

熊猫多重分组和过滤

来自分类Dev

使用grep帮助在R中子集数据帧

来自分类Dev

使用grep帮助在R中子集数据帧

来自分类Dev

Grep到R中的子集

来自分类Dev

R:避免在脚本中使用R子集重复代码行

来自分类Dev

在Shell脚本中使用grep和if语句

来自分类Dev

在 bash 中使用 grep 和 sed 的问题

来自分类Dev

在案例构建中使用WITH和子集

来自分类Dev

在AngularJS中使用模板和过滤

来自分类Dev

如何在R中使用grep匹配表达式的开头和结尾

来自分类Dev

如何在R中使用grep匹配表达式的开头和结尾

来自分类Dev

R barplot:在names.arg中使用名称的子集

来自分类Dev

在R中使用合并定义data.table的子集

来自分类Dev

如何在R中使用“字符”对象调用列表子集?

来自分类Dev

在 r 中使用 if....else 语句进行子集化

来自分类Dev

在 R 中使用特定值进行子集化的问题

来自分类Dev

如何在R中使用tidyverse映射迭代过滤和写入CSV

来自分类Dev

在R中使用Leaflet和Shiny过滤地图-多个值属性

来自分类Dev

如何在R中使用grep grep以#*开头的行

来自分类Dev

使用模式文件和输入文件进行grep过滤

来自分类Dev

如何使用 awk、grep 和/或 powershell 过滤多行

来自分类Dev

在类中使用多重处理

Related 相关文章

热门标签

归档