筛选所有列中包含特定字符串的行(使用dplyr)

塞纳德

我有以下数据:

data <- data.frame(name1 =c("John Smith", "A A", "A B", "A C", "John Donovan", "A F", "A D", "A F", "A D", "A C"),
      name2 = c("A V", "John Smith", "A D", "A R", "A O", "John Smith", "A M", "A V", "A L", "A Q"),
      name3 = c("John Donovan", "A R", "John Donovan", "A L", "A V", "A Q", "A T", "A N", "A L", "A X"))
> data
          name1      name2        name3
1    John Smith        A V John Donovan
2           A A John Smith          A R
3           A B        A D John Donovan
4           A C        A R          A L
5  John Donovan        A O          A V
6           A F John Smith          A Q
7           A D        A M          A T
8           A F        A V          A N
9           A D        A L          A L
10          A C        A Q          A X

我想在所有列中过滤所有包含字符串“ John”的行(列数可以大于3)。

我尝试以下

data %>%
  filter(across(everything()), !str.detect("John"))

但是,它不起作用,并且会产生:

Error: Problem with `filter()` input `..1`.
x Input `..1$name1` must be a logical vector, not a character.
i Input `..1` is `across(everything())`.

您有任何想法吗,尤其是使用跨函数的想法。

阿卜杜萨堡山

filter采用逻辑向量,因此在使用cross时,您需要将该函数传递给cross调用,以将该函数应用于所有选定列:

df %>% filter(across(everything(), ~ !str_detect(., "John")))
   V1  V2  V3
1 A C A R A L
2 A D A M A T
3 A F A V A N
4 A D A L A L
5 A C A Q A X

使用@ekoam的评论中提出的解决方案

df %>% filter(rowSums(across(everything(), ~ str_detect(., "John"))) > 0)
            V1         V2           V3
1   John Smith        A V John Donovan
2          A A John Smith          A R
3          A B        A D John Donovan
4 John Donovan        A O          A V
5          A F John Smith          A Q

只是为了使图片更清晰:

df %>% filter(print(across(everything(), ~ !str_detect(., "John"))))
# A tibble: 10 x 3
   V1    V2    V3   
   <lgl> <lgl> <lgl>
 1 FALSE TRUE  FALSE
 2 TRUE  FALSE TRUE 
 3 TRUE  TRUE  FALSE
 4 TRUE  TRUE  TRUE 
 5 FALSE TRUE  TRUE 
 6 TRUE  FALSE TRUE 
 7 TRUE  TRUE  TRUE 
 8 TRUE  TRUE  TRUE 
 9 TRUE  TRUE  TRUE 
10 TRUE  TRUE  TRUE 
   V1  V2  V3
1 A C A R A L
2 A D A M A T
3 A F A V A N
4 A D A L A L
5 A C A Q A X

请注意,filter&按行(和)布尔值,即仅TRUE选择具有所有值的,而至少具有所有值的行将不被选择FALSE现在,让我们看一下注释中提供的代码:

 df %>% filter(print(across(everything(), ~ str_detect(., "John"))))
# A tibble: 10 x 3
   V1    V2    V3   
   <lgl> <lgl> <lgl>
 1 TRUE  FALSE TRUE 
 2 FALSE TRUE  FALSE
 3 FALSE FALSE TRUE 
 4 FALSE FALSE FALSE
 5 TRUE  FALSE FALSE
 6 FALSE TRUE  FALSE
 7 FALSE FALSE FALSE
 8 FALSE FALSE FALSE
 9 FALSE FALSE FALSE
10 FALSE FALSE FALSE
[1] V1 V2 V3
<0 rows> (or 0-length row.names)

所有行均具有至少一个FALSE,因此未选择任何行。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

筛选所有列中包含特定字符串的行(使用dplyr)

来自分类Dev

删除所有包含特定字符串的行

来自分类Dev

使用LINQ删除所有不包含特定字符串的行

来自分类Dev

使用dplyR从R中data.frame的所有列中替换特殊字符串

来自分类Dev

以R中特定字符串开头的所有列的行中各列之和

来自分类Dev

使用shell删除特定列中包含特定字符串的50%的行

来自分类Dev

使用shell删除特定列中包含特定字符串的50%的行

来自分类Dev

使用pyspark在特定字符后截断数据帧列中的所有字符串

来自分类Dev

筛选NaN行以在Pandas中包含特定字符列

来自分类Dev

使用dplyr对每行(行)中的特定字符串(字符串)进行计数或求和

来自分类Dev

在列中列出与字符串匹配的所有行

来自分类Dev

如何从数组中删除所有不包含包含特定字符串的字段的元素?

来自分类Dev

删除cPanel中所有文件中包含字符串的所有行

来自分类Dev

如何使用HTML Agility Pack获取所有在其属性值中包含特定字符串的HTML标记?

来自分类Dev

使用正则表达式查找字符串中不包含特定字母的所有单词

来自分类Dev

NP ++:清除所有不包含特定字符串的行

来自分类Dev

查找包含特定字符串的所有文件和行

来自分类Dev

创建一个包含所有来自CSV文件的特定字符串的行的数组

来自分类Dev

如何删除包含特定字符串的所有表?

来自分类Dev

SAS:读取包含特定字符串的所有文件

来自分类Dev

如何获取所有包含特定字符串的网址?

来自分类Dev

如何删除包含特定字符串的所有表?

来自分类Dev

列出所有包含特定字符串的文件

来自分类Dev

如何查找包含特定字符串的所有域

来自分类Dev

熊猫数据框选择所有包含特定字符串值的列

来自分类Dev

使用dplyr合并包含相似字符串的行

来自分类常见问题

如何从熊猫数据框中删除包含特定列中特定字符串的行?

来自分类Dev

使用散列查找具有最小总长度的字符串子数组,其中包含原始数组中的所有不同字符串

来自分类Dev

如何在多个文件中搜索特定字符串,并返回包含该字符串的所有文件的名称?

Related 相关文章

  1. 1

    筛选所有列中包含特定字符串的行(使用dplyr)

  2. 2

    删除所有包含特定字符串的行

  3. 3

    使用LINQ删除所有不包含特定字符串的行

  4. 4

    使用dplyR从R中data.frame的所有列中替换特殊字符串

  5. 5

    以R中特定字符串开头的所有列的行中各列之和

  6. 6

    使用shell删除特定列中包含特定字符串的50%的行

  7. 7

    使用shell删除特定列中包含特定字符串的50%的行

  8. 8

    使用pyspark在特定字符后截断数据帧列中的所有字符串

  9. 9

    筛选NaN行以在Pandas中包含特定字符列

  10. 10

    使用dplyr对每行(行)中的特定字符串(字符串)进行计数或求和

  11. 11

    在列中列出与字符串匹配的所有行

  12. 12

    如何从数组中删除所有不包含包含特定字符串的字段的元素?

  13. 13

    删除cPanel中所有文件中包含字符串的所有行

  14. 14

    如何使用HTML Agility Pack获取所有在其属性值中包含特定字符串的HTML标记?

  15. 15

    使用正则表达式查找字符串中不包含特定字母的所有单词

  16. 16

    NP ++:清除所有不包含特定字符串的行

  17. 17

    查找包含特定字符串的所有文件和行

  18. 18

    创建一个包含所有来自CSV文件的特定字符串的行的数组

  19. 19

    如何删除包含特定字符串的所有表?

  20. 20

    SAS:读取包含特定字符串的所有文件

  21. 21

    如何获取所有包含特定字符串的网址?

  22. 22

    如何删除包含特定字符串的所有表?

  23. 23

    列出所有包含特定字符串的文件

  24. 24

    如何查找包含特定字符串的所有域

  25. 25

    熊猫数据框选择所有包含特定字符串值的列

  26. 26

    使用dplyr合并包含相似字符串的行

  27. 27

    如何从熊猫数据框中删除包含特定列中特定字符串的行?

  28. 28

    使用散列查找具有最小总长度的字符串子数组,其中包含原始数组中的所有不同字符串

  29. 29

    如何在多个文件中搜索特定字符串,并返回包含该字符串的所有文件的名称?

热门标签

归档