我正在运行一个字符向量(大约10,000个条目),它有很多信息我希望丢弃,但我想保留相当多的信息.我想要保留的信息必须匹配另一个字符向量中的给定字符串.因此,这将是matching_points包含满足匹配条件的参数的向量:
matching_points <- "house|techno|pop|jazz|dreampop|artrock"
Run Code Online (Sandbox Code Playgroud)
这将是我想要清理的矢量:
music <- c("tropical house", "tech house", "funk", "hardcore", "hard rock", "pop", "dream pop", "free jazz")
Run Code Online (Sandbox Code Playgroud)
通过清理操作,我希望矢量music看起来像这样
[1] "house" "house" "" "" "" "pop" "pop" "jazz"
Run Code Online (Sandbox Code Playgroud)
如果有人知道如何做到这一点会很棒 - 我怀疑有一个简单的选项可以应用于该gsub过程以反转过程,即保持匹配的东西并用其他所有东西替换"".
你可以试试stringr,
library(stringr)
str_extract(music, matching_points)
#[1] "house" "house" NA NA NA "pop" "pop" "jazz"
Run Code Online (Sandbox Code Playgroud)