Hi Wolfram,
this behaviour is due to partial matching. Observe that
data(swiss) swiss$Ed swiss$Edu swiss$Educ
I think the best way to do it is with `%in%' or `match()', i.e.,
c("Ed", "Edu", "Educ", "Education") %in% names(swiss)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: "Wolfram Fischer" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, December 07, 2004 9:47 AM
Subject: [R] how to test the existence of a name in a dataframe
I wanted to test if there exists already a name (which is incidentally a substring of another name) in a dataframe. I did e.g.:
[1] "Fertility" "Agriculture" "Examination" "Education"data(swiss) names(swiss)
[5] "Catholic" "Infant.Mortality"
! is.null(swiss$EduX)[1] FALSE
! is.null(swiss$Edu)[1] TRUE
I did not expect to get TRUE here because ``Edu'' does not exist as name of ``swiss''.
I did finally:'Edu' %in% names(swiss)for which I got the expected FALSE.
My question: What is the recommended way to do such a test?
Thanks - Wolfram Fischer
______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
