私はそれに文字列を持つデータフレームを持っています。私は、部分文字列が各要素内にあるかどうかを調べたいと思います。出力として、部分文字列が見つからない各要素に対してNAを持つデータフレーム(最終的には同じ)と、見つかった場合は実際の部分文字列(唯一!)が必要です。部分文字列自体を検索して返します
さらに、私は複数の部分文字列を持っています...そして、私はそれらの部分文字列の2つが決して同じ要素にないことを知っています!
私はそれに着い最も近いだった:
for(i in 1:length(partial_strings)){
z <- apply(y,2,function(k)str_replace(k,partial_strings[i], partial_strings[i]))
}
z <- ifelse(z %in% partial_strings,z,NA)
しかし残念ながら、代わりに部分的にしか文字列を返すのstr_replaceは、それが元の要素を返しています。理由を理解することができますが、私が望むところから出力をさらに進化させる他のことを試みました。 stringr
パッケージに予め
サンプルデータセットをご提供ください。これは一般的に 'grepl'コマンドで行うことができます。 unit-case文は、 'df $ column [!grepl( 'partial string'、df $ column)] = NA'の行に沿ったものです。 – Kamil
正しく理解すれば、文字ベクトルがあります: ' StringVector < - c( "Week39"、 "Week40"、 "Wk41"、 "number50"、 "nbr51"、 "Wk44") ' そして、上記のベクトルから識別する部分文字列またはパターンを"Week"と "Wk"; 'patterns < - c(" Week "、" Wk ") grepl(paste(patterns、collapse =" | ")、StringVector)';あなたの部分文字列が何であるかに依存して、上記のようにapply関数内でifelse()を設計することができます。 – lemonC