one way is the following: DF <- data.frame(id = 1:6, sex = gl(2, 3, labels = c("M", "F")), x = sample(0:1, 6, TRUE), y = sample(0:1, 6, TRUE), z = rnorm(6))
f <- function (x) { if (all(unique(x) %in% 0:1)) factor(x, levels = 0:1, labels = c("No", "Yes")) else x } DF[] <- lapply(DF, f) I hope it helps. Best, Dimitris On 4/19/2011 10:57 AM, dereksloan wrote:
This is probably very simple but I'm new to R so apologies for being stupid. I have some data with No coded as 0 and yes coded as 1. e.g. id sex alcohol smoker 1 M 0 1 2 F 1 0 3 M 0 0 I realise I can covert the numerical variable back to a factor by falcohol<-factor(alcohol,levels=0:1) levels<-c("No","Yes") fsmoker<-factor(smoker,levels=0:1) levels<-c("No","Yes") but can I do this for all factors using the same levels in a single command to make it easier (i.e. switch all 0/1, no/yes variables without having to recode the same factor levels for them all)? Derek -- View this message in context: http://r.789695.n4.nabble.com/Several-factors-same-levels-tp3459878p3459878.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.
-- Dimitris Rizopoulos Assistant Professor Department of Biostatistics Erasmus University Medical Center Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands Tel: +31/(0)10/7043478 Fax: +31/(0)10/7043014 Web: http://www.erasmusmc.nl/biostatistiek/ ______________________________________________ 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.