0

メモの列を調べています。いくつかの文字列の存在と他の文字列の不在を探します。表情はこんな感じ

toMatch <- c("words", "i", "want", "to")
notToMatch <- c("not", "in", "my", "res")
insert <- paste(paste(toMatch, collapse="|"), "!", paste(notToMatch, collapse="!"), sep="")
regexpr(insert, df$notes, ignore.case=T)

正規表現がカウントされるように私には思えます

printNotes = +1 presence and -1 absence

その式が printNotes > 0 と評価された場合、-1 以外の値を返します (regexpr では見つからないことを示します)。

notToMatch "!" 引数は TRUE を返しますか?

どうもありがとう!

4

1 に答える 1

2

を使用grepl()して、文字列が一致した場所の論理ベクトルを取得し、sum()そのベクトルを使用して一致した数を確認できます。grep()結果のベクトルの長さを数えることで(大まかに)同じことを行うことができますが、grepl()動作はもう少し一貫しています。

任意の一致の逆を取得したい場合は!grepl("match", x)、論理的な逆が表示されます。

*具体的に返してほしい場合、TRUEまたは定数 (26 個の小文字の英字すべて) で "m"を検索し、一致した場合に TRUE を返し、"!" を返す!ようなことを行うことができます。一致しない場合。ifelse(grepl("m", letters), TRUE, "!")letters

于 2013-03-29T23:48:49.150 に答える