部分: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')
我與 '谷歌' 和所有的Facebook取代所有類似谷歌的詞與'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:我有更多的模式可以匹配和替換。使用兩個向量比重複'gsub'幾十次更容易。是否有更好的替代'mapply'? (感謝編輯我的問題) –
@ user2100721:我不會完全贊同你的答案。我需要在哪裏放置'|'? –