2016-11-03 11 views
0

私のテキストにあるすべてのウムラウト(ドイツ語)を置き換えたいと思います。ここに私のテキストの一部は次のとおりです。R(gsub)の大文字と小文字の置換

temp.RData enthalten die täglichen Niederschlagsmengen\nund die stündlichen Durchschnittstemperaturen von 1.7.2016 (1 Uhr) bis\n26.9.2016 

だから私はここで

は私のコードがある(OE、UE、AE)自分の英語類似体によるA、Uおよびöなどのすべての文字を置き換えたい:

text <- gsub(pattern = '[Ää]',replacement = "ae",text) 
text <- gsub(pattern = '[Üü]',replacement = "ue",text) 
text <- gsub(pattern = '[Öö]',replacement = "oe",text) 

ビットウムラウト(Ä、Ü、Ö)が小文字から始まるアナログに置き換えられている点を除いて、すべてうまくいきます。しかし、私はÄをAe(aeではない)に置き換えたい。 Rでregexだけを使用してそれを行うにはどうすればよいですか?

+3

ダニエルと同じ質問ではありませんか? http://stackoverflow.com/questions/40323219/replacing-all-umlauts-simultaneously-in-r-using-regex/40323338#40323338 –

答えて

2

最も簡単な方法は、あなたが選択したい場合は特に、それを分離することである。

text <- gsub(pattern = '[ä]',replacement = "ae",text) 
text <- gsub(pattern = '[ü]',replacement = "ue",text) 
text <- gsub(pattern = '[ö]',replacement = "oe",text) 
text <- gsub(pattern = '[Ä]',replacement = "Ae",text) 
text <- gsub(pattern = '[Ü]',replacement = "Ue",text) 
text <- gsub(pattern = '[Ö]',replacement = "Oe",text) 

あなたはより効率的な方法をしたい場合、あなたはstringr

library(stringr) 
str_replace_all(text, c('ä' = 'ae', 'ë' = 'ee', 'ï' = 'ie', 'ö' = 'oe', 
         'ü' = 'ue', 'Ä' = 'Ae', 'Ë' = 'Ee', 'Ï' = 'Ie', 
         'Ö' = 'Oe', 'Ü' = 'Ue')) 
0

を使用することができます。ここですUnicode-smartを使用したより高速でより簡潔な方法stringiパッケージ:

vectorize_all = FALSEは、置換が要素単位であることを意味し、これを固定パターン置換にすると、可能な限り高速になります。

関連する問題