Just a note: If the dataset is not ordered, this could result in:
set.seed(24) xNew<-x[sample(1:nrow(x),6,replace=FALSE),] idxN<-which(c(TRUE,diff(as.integer(xNew[,2]))!=0)) xNew[-idxN,] #[1] "2/1/13" "18" "30" xNew1<-xNew[order(xNew[,2],xNew[,1]),] idx<-which(c(TRUE,diff(as.integer(xNew1[,2]))!=0)) xNew1[-idx,] # [,1] [,2] [,3] #[1,] "1/5/13" "15" "25" #[2,] "1/9/13" "15" "28" #[3,] "2/5/13" "18" "35" #[4,] "2/9/13" "18" "38" #Same problem applies to my solution xNew2<- as.data.frame(xNew, stringsAsFactors=FALSE) xNew[with(xNew2,ave(as.numeric(as.Date(V1,"%m/%d/%y")),V2,FUN=function(x) !x%in% min(x)))!=0,] #keeps the original order of xNew # [,1] [,2] [,3] #[1,] "1/5/13" "15" "25" #[2,] "2/9/13" "18" "38" #[3,] "1/9/13" "15" "28" #[4,] "2/5/13" "18" "35" A.K. ----- Original Message ----- From: Rui Barradas <ruipbarra...@sapo.pt> To: Andras Farkas <motyoc...@yahoo.com> Cc: "r-help@r-project.org" <r-help@r-project.org> Sent: Tuesday, July 30, 2013 9:08 AM Subject: Re: [R] selection based on dates Hello, Try the following. idx <- which(c(TRUE, diff(as.integer(x[,2])) != 0)) x[-idx,] Also, note that in constructs such as a <-c("1/1/13",15,20) both 15 and 20 are coerced to character. So your matrix is a matrix of chars. For different types of data, use data.frames Hope this helps, Rui Barradas Em 30-07-2013 13:13, Andras Farkas escreveu: > Dear All > > please provide your insigths on the following: > > I have: > > a <-c("1/1/13",15,20) > b <-c("1/5/13",15,25) > c <-c("1/9/13",15,28) > d <-c("2/1/13",18,30) > e <-c("2/5/13",18,35) > f <-c("2/9/13",18,38) > x <-matrix(c(a,b,c,d,e,f),ncol=3,byrow=TRUE) > > What I would like to do is to eliminate certain rows of this matrix based on > the date column values. As you can see, in the second column my values (15 > and 18) repeat 3 times each, so this column serves as an ID number if you > will. Thus each ID numbers show up with 3 different date values in the first > column. Now I would like to eliminate the rows with the earliest date per ID > number. My result should look like this: > > z <-x[-c(1,4),] > > as allways, your help is greatly appreciated, > > thanks, > > Andras > > ______________________________________________ > 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. > ______________________________________________ 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. ______________________________________________ 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.