This post is just a little reminder for myself, because i had to look this up a few times.
Version 1
#Before: [1] 5 4 3 5 3 4 #After: [1] Stimme gar nicht zu Stimme eher nicht zu Teils / teils Stimme gar nicht zu Teils / teils Stimme eher nicht zu
I use „recode“ from the car package, to recode the variables. This function will be used with „apply“ so it will recode all vectors in the dataframe.
Here´s how it´s done:
df<- apply(df, 2, function(x) { x <- car::recode(x,"1='Stimme voll und ganz zu'; 2='Stimme eher zu';3='Teils / teils';4='Stimme eher nicht zu';5='Stimme gar nicht zu';9=NA"); x }) df<-as.data.frame(df)
Version 2
If you only want to recode some of the variables in you dataframe, you can define them in a list and use this list in a for-loop.
library(car) var.list<-c("var1","var3","var5") for (v in var.list) df[[v]]<-recode(df[[v]], "1=5;2=4;4=2;5=1")
Version 3
If the values just have to be reversed, there´s an even simpler way:
recode.list<-c("variable1","variable2") df[recode.list] <- 6 - df[recode.list]