定義された観測タイプでキー付けされた、最大 100 万個の観測を含む大規模なデータセットがあります。データセット内には、不正な形式の観測タイプを持つ最大 900,000 の観測があり、50 の許容可能な観測タイプの最大 850 (正しくない) バリエーションがあります。
keys <- c("DAY", "EVENING","SUNSET", "DUSK","NIGHT", "MIDNIGHT", "TWILIGHT", "DAWN","SUNRISE", "MORNING")
entries <- c("Day", "day", "SUNSET/DUSK", "DAYS", "dayy", "EVEN", "Evening", "early dusk", "late day", "nite", "red dawn", "Evening Sunset", "mid-night", "midnight", "midnite","DAY", "EVENING","SUNSET", "DUSK","NIGHT", "MIDNIGHT", "TWILIGHT", "DAWN","SUNRISE", "MORNING")
gsub を使用することは、ハンド シャベルで地下室を掘るのと似ています。私の場合、r と複雑な正規表現に慣れていないので、ハンドルが壊れたシャベルを使用します。簡単なフォールバック (私にとって) は、受け入れられた観察の種類ごとに 1 つの gsub ステートメントを記述することですが、50 のステートメントが必要なため、不必要に困難に思えます。
問題のあるエントリを最短距離の文字列で使用levenshtein.distance
または置き換えたいと思います。(length(x)) の結果を各 y[i] に渡そうとしているため、 stringdist
実行は機能しません。z <- for (i in length(y)) { z[i] = levenshtein.distance(y[i], x)}
最小距離で結果を返すにはどうすればよいですか? function(x) x[2]
シリーズで2番目の結果を返すのを見てきましたが、どのように最低を取得するのですか?