如何编写代码来查找包含单词" alternative ";在风格。但不仅仅是"替代";独立的,但"可选择的";与其他单词组合。这里的数据框叫做metals
style
id brand_id brand_name origin formed split fans style
5 1038 Keldian Norway 2005 2005 54 Adult
6 2022 Dawn Of Ashes USA 2001 2001 17 Aggrotech
7 43 Sepultura Brazil 1984 2003 1185 Alternative
8 3388 Louna Russia 2007 2008 5 Alternative rock
9 785 Stam1na Finland 1992 1996 78 Alternative thrash
很容易找到style为"Alternative"只像这里:
metals[metals$style == "Alternative",]
但是我想找到带有"Alternative"在样式下,不管它旁边是否有另一个词,比如rock of thrash,这意味着我想要3行打印我上面发布的样本
试试这个。这也是一个分享最小可重复示例的好方法,它使我们能够运行和改进代码。
library(tidyverse)
tribble(~id, ~style,
5, "Adult",
6, "Aggrotech",
7, "Alternative",
8, "Alternative rock",
9, "Alternative thrash"
) |>
filter(str_detect(style, "Alternative"))
#> # A tibble: 3 × 2
#> id style
#> <dbl> <chr>
#> 1 7 Alternative
#> 2 8 Alternative rock
#> 3 9 Alternative thrash
在2022-05-11由reprex包(v2.0.1)创建
使用grepl
匹配模式:
metals[grepl("(?i)Alternative", metals$style),]
请注意,(?i)
标志用于使匹配不区分大小写,以便您可以找到诸如"alternative"甚至是"alterNAtive"了。如果不需要或不需要,就把它删掉。