2016-11-03 3 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) 영어 유사하여, ü과 ö 같은 모든 문자를 대체 할 :

여기 내 텍스트의 부분은
text <- gsub(pattern = '[Ää]',replacement = "ae",text) 
text <- gsub(pattern = '[Üü]',replacement = "ue",text) 
text <- gsub(pattern = '[Öö]',replacement = "oe",text) 

비트 움라우트 (Ä, Ü, Ö)가 작은 글자로 시작하는 아날로그로 대체되었다는 것을 제외하면 모든 것이 잘 작동합니다. 그러나 나는 Ae (ae가 아님)에 의해 Ä를 대체하고 싶다. R에서 regex 만 사용하면 어떻게됩니까? 좀 더 효율적인 방법을 원한다면, 당신은 stringr

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

Danil과 같은 질문이 아닌가요? http://stackoverflow.com/questions/40323219/replacing-all-umlauts-simultaneously-in-r-using-regex/40323338#40323338 –

답변

2

가장 쉬운 방법은, 그것을 분리하는 것입니다 유니 코드 - 스마트를 사용하여 더 빠르고 더 간결한 방법 stringi 패키지 :

txt <- "A: Äbel bäbel, O: Öber öber, U: Über über gemütlich" 
stringi:: stri_replace_all_fixed(txt, 
           c("ä", "ü", "ö", "Ä", "Ü", "Ö"), 
           c("ae", "ue", "oe", "Ae", "Ue", "Oe"), 
           vectorize_all = FALSE) 
## [1] "A: Aebel baebel, O: Oeber oeber, U: Ueber ueber gemuetlich" 

vectorize_all = FALSE은 대체 요소가 요소 단위임을 의미하며이를 고정 패턴으로 바꾸는 것이 가장 빠른 방법입니다.

0

을 사용할 수 있습니다

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) 

여기에 : 당신이 선택되고 싶어요 특히