R 如何仅在字符串与多列匹配时筛选行
我只想在字符串与多列匹配时筛选行。我寻找答案,但没找到。我想我不知道该找什么 那么,假设我有一个这样的tibbleR 如何仅在字符串与多列匹配时筛选行,r,dplyr,stringr,R,Dplyr,Stringr,我只想在字符串与多列匹配时筛选行。我寻找答案,但没找到。我想我不知道该找什么 那么,假设我有一个这样的tibble library(tibble) tib1 <- tibble(ID = 1:3, Col.1 = c("Hi", "Hello", "ND"), Col.2 = c("Bye", "ND", "ND")) tib1 # A tibble: 3 x 3
library(tibble)
tib1 <- tibble(ID = 1:3, Col.1 = c("Hi", "Hello", "ND"), Col.2 = c("Bye", "ND", "ND"))
tib1
# A tibble: 3 x 3
ID Col.1 Col.2
<int> <chr> <chr>
1 1 Hi Bye
2 2 Hello ND
3 3 ND ND
库(TIBLE)
tib1%过滤器(变量(第1列、第2列)、任何变量(str检测(,“ND”))
#一个tibble:2x3
ID第1列第2列
12你好,ND
第二,第三
我该怎么做?我想用tidyverse软件包
谢谢您,祝您愉快。这应该会给出您想要的输出-将
任何变量
更改为所有变量
,从而将谓词从
更改为&
tib1 %>%
filter_at(vars(Col.1, Col.2), all_vars(str_detect(., "ND")))
有多个%
行()
过滤器(有多个('ND',c_交叉(第1列:第2列)))
@EJJ的答案将返回所有变量都是“ND”的行
我的代码返回两个或多个(但不一定全部)变量为“ND”的行
当然,在这个例子中,只有两个变量,结果是相同的
tib1 %>% filter_at(vars(Col.1, Col.2), any_vars(str_detect(., "ND")))
# A tibble: 2 x 3
ID Col.1 Col.2
<int> <chr> <chr>
1 2 Hello ND
2 3 ND ND
tib1 %>%
filter_at(vars(Col.1, Col.2), all_vars(str_detect(., "ND")))