パート:R:私のデータのmapply(GSUB ...)(...)GSUBとは異なる結果が得られる
data <- c('googel', 'googele', 'googl', 'google .de', 'google kalender',
'google maps', 'google.ch', 'www.google.ch', 'factbook', 'facebock',
'facebok', 'facebook', 'facebook.ch', 'facebook.com', 'facebook.de', 'facebooke')
私は 'Googleの' とすべてのfacebookですべてのGoogleのような言葉を交換する必要が「Facebook」のような言葉。私は次のコードでこれを行うことができます:
### Google coding
> google <- gsub(pattern = '.*go.*g.*l.*', replacement = 'Google', data)
### Facebook coding
> fbGoogle <- gsub(pattern = '.*fa.*bo.*k.*', replacement = 'Facebook', google)
> plyr::count(fbGoogle)
x freq
1 Facebook 8
2 Google 8
これは、mapply、パターン用のベクトルと置き換え用のものを使用して行いたいと思います。私は同じ正規表現を使用していますが、私は以前とは異なる結果を得ています。
> ### Google and Facebook togeter
> patterns <- c('.*go.*g.*l.*', '.*fa.*bo.*k.*')
> replacements <- c('Google', 'Facebook')
> fbGoogleFail <- mapply(gsub, patterns, replacements, data)
> plyr::count(fbGoogleFail)
x freq
1 facebok 1
2 Facebook 4
3 facebook.ch 1
4 facebook.de 1
5 factbook 1
6 googele 1
7 Google 4
8 google .de 1
9 google maps 1
10 www.google.ch 1
ここで失敗したアイデアはありますか?どんな助けも大歓迎です。あなたは `mapply`を使用したくない理由
を試してみてください? – Sotos
@Sotos:私はより多くのパターンを照合して置き換えます。 2つのベクトルを使うことは、 'gsub'を何回も繰り返すより簡単です。 'mapply'にはより良い選択肢がありますか? (私の質問を編集してくれてありがとう) –
@ user2100721:私はあなたの答えを完全にgrogしません。どこに '|'を置かなければならないでしょうか? –