Message-ID: <1362326314.87522.YahooMailNeo@web142601.mail.bf1.yahoo.com>
Date: 2013-03-03T15:58:34Z
From: arun
Subject: Help searching a matrix for only certain records
In-Reply-To: <1362291096.24883.YahooMailClassic@web161205.mail.bf1.yahoo.com>
Hi,
Try this:
set.seed(51)
?mat1<- as.matrix(data.frame(REC.TYPE= sample(c("SAO","FAO","FL-1","FL-2","FL-15"),20,replace=TRUE),Col2=rnorm(20),Col3=runif(20),stringsAsFactors=FALSE))
?dat1<- as.data.frame(mat1,stringsAsFactors=FALSE)
dat1[grepl("SAO|FL-15",dat1$REC.TYPE),]
#?? REC.TYPE??????? Col2?????? Col3
#4???? FL-15 -1.31594143 0.41193183
#6???? FL-15? 0.43419586 0.96004780
#9???? FL-15 -0.90690732 0.84000657
#10????? SAO? 0.21363265 0.20155142
#13????? SAO -0.55566727 0.71606558
#15????? SAO -0.71533068 0.90851364
#17????? SAO? 1.58611036 0.97475674
#20????? SAO -0.42904914 0.33710578
A.K.
----- Original Message -----
From: Matt Borkowski <mathias1979 at yahoo.com>
To: r-help at r-project.org
Cc:
Sent: Sunday, March 3, 2013 1:11 AM
Subject: [R] Help searching a matrix for only certain records
Let me start by saying I am rather new to R and generally consider myself to be a novice programmer...so don't assume I know what I'm doing :)
I have a large matrix, approximately 300,000 x 14. It's essentially a 20-year dataset of 15-minute data. However, I only need the rows where the column I've named REC.TYPE contains the string "SAO? " or "FL-15".
My horribly inefficient solution was to search the matrix row by row, test the REC.TYPE column and essentially delete the row if it did not match my criteria. Essentially...
> j <- 1
> for (i in 1:nrow(dataset)) {
>? ? if(dataset$REC.TYPE[j] != "SAO? " && dataset$RECTYPE[j] != "FL-15") {
>? ? ? dataset <- dataset[-j,]? }
>? ? else {
>? ? ? j <- j+1? }
> }
After watching my code get through only about 10% of the matrix in an hour and slowing with every row...I figure there must be a more efficient way of pulling out only the records I need...especially when I need to repeat this for another 8 datasets.
Can anyone point me in the right direction?
Thanks!
Matt
______________________________________________
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.