[R] How to replace German umlauts in strings?

Peter Dalgaard p.dalgaard at biostat.ku.dk
Thu Apr 10 20:20:11 CEST 2008


Dieter Menne wrote:
> Hans-Jörg Bibiko <bibiko <at> eva.mpg.de> writes:
>
>   
>> On 10.04.2008, at 18:03, Hofert Marius wrote:
>>     
>>> I have a file containing names of German students. These names
>>> contain the characters "ä", "ö" or "ü" (German umlauts). I use
>>> read.table() to read the file and let's assume the table is then
>>> stored in a variable called "data". The names are then contained in
>>> the first column, i.e. data[,1]. Now if I simply display the variable
>>> "data", I see, that "ä" is replaced by \x8a, "ö" is replaced by \x9a
>>> and so forth. 
>>>       
>
> This is strange. When I have a file umlaut.txt
>
> Name
> Äserich
> Ömadel
> Übermunsch
>
> and read it in with 
>
> umlaut = read.table("umlaut.txt", header = TRUE)
> umlautasis = read.table("umlaut.txt", header = TRUE,as.is = TRUE)
>
> I get the following in both cases: 
>
>  umlautasis
>         Name
> 1    Äserich
> 2     Ömadel
> 3 Übermunsch
>
> This is on Windows Vista. I use it every day without ever having seen nasty
> codings, typically with the following in latex
>
> \usepackage[T1]{fontenc}
> \usepackage{textcomp}
> \usepackage{babel}
> \usepackage[latin1]{inputenc} % For ü,ä
>
>
> Dieter
>   
Thing is that \x9a for o-umlaut is an unusual encoding:

 > names(which(sapply(iconvlist(),iconv, x="S\x9aren")=="Sören"))
[1] "CP1282"            "CSMACINTOSH"       "MAC"             
[4] "MAC-CENTRALEUROPE" "MACINTOSH"         "MACIS"           
[7] "MAC-IS"            "MAC-SAMI"        
 > iconv("öäüÖÄÜ", to="MAC")
[1] "\x9a\x8a\x9f\x85\x80\x86"


and accordingly,

 > data$names <- iconv(data$names,from="MAC")
 > data
  names points
1 Björn     10
2 Sören     20

or, if you need to do it for many variables, this should work:

ix <- sapply(data, is.character)
data[ix] <- lapply(data[ix], iconv, from="MAC")

-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907



More information about the R-help mailing list