データに一致する文字列を取得するコマンドとして、部分一致に「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
少しでも、あなたの解析が楽になりますように!!