【发布时间】:2020-11-15 13:17:11
【问题描述】:
我有以下数据:
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())`.
你有什么想法,尤其是使用cross函数的想法。
【问题讨论】: