【发布时间】:2020-01-30 14:50:36
【问题描述】:
这是“问题”的简化示例
dt <-
read.table(textConnection("names age location
Ann 32 Glas
Annie 31 US
Anne 40 Glas
Kerri 31 Edin
David 39 Fra
Glas 29 Annie
Lindsay 24 US
Lynsey 37 Glas
Glas Annie US
Lila 39 Fra
Layla 37 US"),
header = TRUE,
sep = "",
stringsAsFactors = FALSE) %>%
as_tibble()
我想为同时存在“ann”和“glas”的每一行添加一个名为 AnnGlas 的新列
我知道如何过滤其中一个,但不能同时过滤两个
dt %>% filter_all(any_vars(str_detect(str_to_lower(.), "glas|ann")))
我可以找到一个匹配项,但不能同时使用 apply
apply(dt, 2, function(x) str_detect(str_to_lower(x), "glas|ann"))
我需要找到一些方法来检查任何行列是否包含 glas,以及是否另一个包含 ann,以便我可以创建新列
输出应该是这样的
names age location desc
<chr> <chr> <chr> <lgl>
1 Ann 32 Glas TRUE
2 Annie 31 US FALSE
3 Anne 40 Glas TRUE
4 Kerri 31 Edin FALSE
5 David 39 Fra FALSE
6 Glas 29 Annie TRUE
7 Lindsay 24 US FALSE
8 Lynsey 37 Glas FALSE
9 Glas Annie US TRUE
10 Lila 39 Fra FALSE
11 Layla 37 US FALSE
【问题讨论】:
标签: r multiple-columns multiple-conditions