私はキーワード(例えば「緑」)といくつかのテキスト(「私はそれらが好きではありませんSam I Am!」)を持っています。
キーワード(「g」、「r」、「e」、「e」、「n」)の文字がテキストに(任意の順序で)いくつあるかを確認したいと思います。
この例では、答えは3です。テキストにはGまたはRはありませんが、2つのEと1つのNがあります。
私の問題は、テキスト内の文字がキーワード内の文字と一致する場合、それを使用してキーワード内の別の文字と一致させることができない場合に発生します。
たとえば、私のキーワードが「greeen」の場合、テキストには3つではなく2つのE(キーワードの3番目のEに一致する)しかないため、「一致する文字」の数は3(1つのNと2つのE)のままです。 。
これをRで書くにはどうすればよいですか?これは私の記憶の端にある何かを刻んでいるだけです-それは一般的な問題のように感じますが、言い方が異なります(置換なしのサンプリングのようなものですが、「置換なしの一致」ですか?)。
例えば
keyword <- strsplit('greeen', '')[[1]]
text <- strsplit('idonotlikethemsamiam', '')[[1]]
# how many characters in keyword have matches in text,
# with no replacement?
# Attempt 1: sum(keyword %in% text)
# PROBLEM: returns 4 (all three Es match, but only two in text)
期待される入力/出力のその他の例(キーワード、テキスト、期待される出力):
- '緑'、'idonotlikethemsamiam'、3(G、E、E)
- 'greeen'、'idonotlikethemsamiam'、3(G、E、E)
- 'red'、'idonotlikethemsamiam'、2(EおよびD)