Rで解析:文字列に部分一致・完全一致するデータを取得するコマンドの例

Rの解析に役に立つ記事

データに一致する文字列を取得するコマンドとして、部分一致に「grep」コマンド、完全一致に「charmatch」コマンドがあります。意外と知られていないので紹介します。

実行コマンドはR version 4.1.2で確認しています。


スポンサーリンク
スポンサーリンク

実行コマンド

詳細はコメント、コマンドのヘルプを確認してください。

###テストデータの作成#####
TestData <- data.frame(Char = c("か", "から", "からだ", "からだに", "からだに",
                                "からだにい", "からだにいい", "からだにいいも",
                                "からだにいいもの"),
                       Data = 1:9)
########

#「からだにいい」を含むベクトルを抽出
IncKey <- TestData[, 1] %in% grep("からだにいい", TestData[, 1], value = TRUE)
#データから抽出
subset(TestData, IncKey)
Char Data
7     からだにいい    7
8   からだにいいも    8
9 からだにいいもの    9

#「からだにいい」だけを含むベクトルを抽出
MatchVec <- charmatch("からだにいい", TestData[, 1])
#データから抽出
TestData[MatchVec,]
Char Data
7 からだにいい    7

#TestDataにない内容を検索
charmatch("い", TestData[, 1])
[1] NA

#NAだと使い勝手が悪い場合がある,NA以外の値で取得したい
#nomatchオプションの設定:NAではなく0で取得
charmatch("い", TestData[, 1], nomatch = 0)
[1] 0

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました