[R] Substitute German "Umlauts" with function

Rui Barradas ruipbarradas at sapo.pt
Sat Mar 1 23:32:12 CET 2014


Hello,

Maybe with some simple modifications of swiss2. (Note that your 2nd 
function wasn't returning a value.)


swiss2 <- function(m, data){
   for (i in seq_len(ncol(m))){
       data <- gsub(paste(m[,i], sep=",")[1],paste(m[,i], sep=",")[2], data,
		ignore.case=F, perl = F, fixed = F, useBytes = F)
   }
   data
}

swiss2(m, d.data$V1)
[1] "aezAezuezUeZoeZOe"


Hope this helps

Rui Barradas


Em 01-03-2014 21:45, Tobias Kisch escreveu:
> Hi everybody
>
>
>
> I guess my problem is pretty easy to solve, but I didn't manage to get it
> working...
>
>
>
> Me, as a Swiss, I'm trying to substitute German "Umlauts" (ä, ü, ö) in a
> string variable in a dataset; meaning "ä" to "ae", "ü", to "ue" and "ö" to
> "oe".
>
> Here's a reproducible example:
>
>
>
> # defining dataset
>
> d.data <- as.data.frame(cbind(c("äzÄzüzÜZöZÖ"), c(rnorm(1))))
>
> # defining "Umlauts"
>
>
>
> a <- c("ä", "ae")
>
> A <- c("Ä", "Ae")
>
> u <- c("ü", "ue")
>
> U <- c("Ü", "Ue")
>
> o <- c("ö", "oe")
>
> O <- c("Ö", "Oe")
>
>
>
> # Matrix of substitutions
>
>
>
> m <- cbind(a,A,u,U,o,O, deparse.level=0)
>
>
>
> I’m trying to write a function that does replace the "Umlauts" by the
> appropriate substitute. Here's what I have so far:
>
>
>
> swiss1 <- function(m, data){
>
>    gsub(paste(m[,1], sep=",")[1],paste(m[,1], sep=",")[2], data,
> ignore.case=T, perl = F, fixed = F, useBytes = F)
>
> }
>
>
>
> test1 <- swiss1(m, d.data$V1)
>
> test1
>
>> test
>
> [1] "aezaezüzÜZöZÖ"
>
>
>
> Apparently this does substitute the first elements of my matrix m. But i
> want it to walk through the whole matrix m. So I thought of doing a for loop
> inside the function.
>
>
>
> swiss2 <- function(m, data){
>
>    for (i in ncol(m)){
>
>        gsub(paste(m[,i], sep=",")[1],paste(m[,i], sep=",")[2], data,
> ignore.case=T, perl = F, fixed = F, useBytes = F)
>
>    }
>
> }
>
>
>
>
>
> test2<- swiss2(m, d.data$V1)
>
> test2
>
>> test2
>
> NULL
>
>
>
> What I get then is an empty vector, instead of the original data with the
> substituted "Umlauts"
>
>
>
> Does anybody has a hint..?
>
>
>
> Thanx very much!
>
> Best, Tobi
>
>
>
>
>
>
> 	[[alternative HTML version deleted]]
>
>
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>




More information about the R-help mailing list