Hi,

May be this helps:
set.seed(49)
dat1 <- as.data.frame(matrix(sample(c(NA,0:2),20,replace=TRUE),ncol=2))
dat2 <- dat1
 lst1 <- list(letters[1:3],letters[26:24])
library(plyr)

 dat1[] <-lapply(seq_len(ncol(dat1)),function(i) {x1 <-dat1[,i]; x2 <- 
lst1[[i]]; mapvalues(x1,c(0,1,2),x2)})

#Or
dat2[] <-lapply(seq_len(ncol(dat2)),function(i) 
as.character(factor(dat2[,i],labels=lst1[[i]])))

 identical(dat1,dat2)
#[1] TRUE
A.K.


Hi I'm Pasquale, 
I need to recode variables (columns) of a dataframe (call it X). The
 observations (rows) are coded as numeric 0,1,2 and NA. I managed to use
 the lapply() function with recode() as FUN and for() loop but I failed. 
My problem is that for each columns the recoding system is different (i.e. for 
V1 the code will be 0=a, 1=b, 2=c, for V2 0=z, 1=y, 2=x). 
My new codes are stored in another data frame (call it Y). colnames(X) and 
rownames(Y) matches. 
How can I solve this situation? 

Thanks a lot in advance, 
Pasquale

______________________________________________
R-help@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.

Reply via email to