我想提取包含某些特定字符串的字符数组的元素。例如:
x <- c('aa', 'ab', 'ac', 'bb', 'bc')
我想要一些函数,这样,给定x
并且'a'
(通常这可以是一个字符串),它返回'aa', 'ab', 'ac'
. 我已经尝试过 , , 等的组合%in%
,match
但which
无法使它们起作用。任何想法?
只需使用grep
:
grep('a', x, value=TRUE)
[1] "aa" "ab" "ac"
在表格或列表中,我们可以使用 dplyr/tidyverse 包中的 dplyr::pull 将列中的值首先转换为向量,然后在列中查找特定值。例如,在 LEGO 示例中,我们可以执行以下操作来查找以“s”或“S”开头的任何主题:
inventory_parts_themes <- inventories %>%
inner_join(inventory_parts, by = c("id" = "inventory_id")) %>%
arrange(desc(quantity)) %>%
select(-id, -version) %>%
inner_join(sets, by = "set_num") %>%
inner_join(themes, by = c("theme_id" = "id"), suffix = c("_set", "_theme"))
all_theme_names <- dplyr::pull(inventory_parts_themes, name_theme)
all_theme_names[grep("^[sS].*", all_theme_names)]