delete columns which partially match expression
Be careful with the idiom x[, -which(columnIsBad)] If no columns are bad this leads to x[, -integer(0)] which is a data.rame with no columns, exactly the opposite of what you want. x[, !columnIsBad] doesn't have that problem. However, if you can't tell if a column is bad or not (i.e., columnIsBad contains an NA) you will have to process columnIsBad to turn that NA into a definite TRUE or FALSE. Finally, add the drop=FALSE argument to [] in case the result would be a one-column data.frame to prevent it from being converted to the column itself. Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com
-----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of jim holtman Sent: Thursday, October 13, 2011 6:24 AM To: Samir Benzerfa Cc: r-help at r-project.org Subject: Re: [R] delete columns which partially match expression try this:
x <- read.table(textConnection("A B C D E
+ 12 33 Error1 71 Error2 + 12 33 Error1 71 Error2 + 12 33 Error1 71 Error2 + 12 33 Error1 71 Error2 + 12 33 Error1 71 Error2") + , as.is = TRUE + , header = TRUE + )
closeAllConnections()
colMatch <- which(apply(x, 2, function(a) any(grepl("Error", a))))
colMatch
C E 3 5
# delete columns x[, -colMatch]
A B D 1 12 33 71 2 12 33 71 3 12 33 71 4 12 33 71 5 12 33 71
On Thu, Oct 13, 2011 at 9:10 AM, Samir Benzerfa <benzerfa at gmx.ch> wrote:
Hello everyone, I'd like to search for certain "expressions" (characters) in my data.frame and delete the containing columns. So, for example in the below table, I'd like to delete all columns which contain the expression "Error". That is, R should delete column C and E from my data. Any ideas? A ? ? ? ? ? ? B ? ? ? ? ? ? C ? ? ? ? ? ? D ? ? ? ? ? ? E 12 ? ? ? ? ? 33 ? ? ? ? ? Error1 ? 71 ? ? ? ? ? Error2 Cheers, S.B. ? ? ? ?[[alternative HTML version deleted]]
______________________________________________ R-help at 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.
-- Jim Holtman Data Munger Guru What is the problem that you are trying to solve?
______________________________________________ R-help at 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.