Remove columns from data-frame
try this:
dat <- data.frame(y=rnorm(100), f1=sample(c("Yes", "No"), 100, TRUE),
f2=rep("Yes", 100), f3=rep("No", 100))
#############
dat[!sapply(dat, function(x) all(x==x[1]))]
I hope it helps.
Best,
Dimitris
----
Dimitris Rizopoulos
Ph.D. Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven
Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/16/336899
Fax: +32/16/337015
Web: http://www.med.kuleuven.ac.be/biostat/
http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm
----- Original Message -----
From: "Maciej Blizi?ski" <m.blizinski at wsisiz.edu.pl>
To: <r-help at stat.math.ethz.ch>
Sent: Monday, March 21, 2005 11:12 AM
Subject: [R] Remove columns from data-frame
Hello, I'm new to the list, hello everybody! :-) I have a question. I looked carefully through the documentation and googled, and found no answer, so I'm posting it here. Let's say I have a data frame with lots of columns (about 300), which are factors. Many columns-factors have only one level, for example all are "Yes" or all are "No". If I try to do a regression with that, I get an error message, that contrasts can be used only when number of factors is at least 2.
glm(mortality ~ ., family = binomial, data = ecdb_PROC88)
Error in "contrasts<-"(`*tmp*`, value = "contr.treatment") :
contrasts can be applied only to factors with 2 or more
levels
Of course, I could not include them in the model formula, but I
don't
feel like typing 150 descriptive variables.
I would like to remove the one-level columns autimatically from the
data
frame. Is it possible?
Regards,
Maciej
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html