尋找匹配

# example data
test_sentences <- c("The quick brown fox", "jumps over the lazy dog")   

有匹配嗎?

grepl() 用於檢查字串或字元向量中是否存在單詞或正規表示式。該函式返回 TRUE / FALSE(或布林)向量。

請注意,我們可以檢查每個字串中的單詞 fox 並接收一個布林向量作為返回。

grepl("fox", test_sentences)
#[1]  TRUE FALSE

匹配位置

grep 接受一個字串和一個正規表示式。它返回索引的數字向量。這將返回哪個句子中包含單詞 fox

grep("fox", test_sentences)
#[1] 1

匹配值

選擇與模式匹配的句子:

# each of the following lines does the job:
test_sentences[grep("fox", test_sentences)]
test_sentences[grepl("fox", test_sentences)]
grep("fox", test_sentences, value = TRUE)
# [1] "The quick brown fox"

細節

由於 fox 模式只是一個單詞,而不是正規表示式,我們可以通過指定 fixed = TRUE 來提高效能(使用 grepgrepl)。

grep("fox", test_sentences, fixed = TRUE)
#[1] 1

要選擇與模式匹配的句子,可以使用 grepinvert = TRUE; 或者使用 -grep(...)!grepl(...) 遵循子集規則。

grepl(pattern, x)grep(pattern, x) 中,x 引數是向量化的pattern 引數不是。因此,你不能直接使用這些來匹配 pattern[1]x[1]pattern[2] 對抗 x[2],依此類推。

匹配總結

執行例如 grepl 命令後,你可能想要了解 TRUEFALSE 的匹配次數。這在例如大資料集的情況下是有用的。為此,請執行 summary 命令:

# example data
test_sentences <- c("The quick brown fox", "jumps over the lazy dog") 

# find matches
matches <- grepl("fox", test_sentences)

# overview
summary(matches)