# [R] selection based on dates

Ben Tupper btupper at bigelow.org
Tue Jul 30 15:01:41 CEST 2013

```On Jul 30, 2013, at 7:13 AM, Andras Farkas wrote:

> Dear All
>
>
> 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),]
>

Hi,

It is not clear to me that the result you show in z is what you describe in words.  On the other hand, I think the following will "eliminate the rows with the earliest date per ID number".

x <- structure(c("1/1/13", "1/5/13", "1/9/13", "2/1/13", "2/5/13",
"2/9/13", "15", "15", "15", "18", "18", "18", "20", "25", "28",
"30", "35", "38"), .Dim = c(6L, 3L))

ix <- duplicated(x[,2])

z <- x[ix,]

Is that what you are looking to achieve?  By the way, the solution is not based upon selecting by date as your subject message suggests.  Do you need to filter on dates instead?  If that is so, then you will need a different solution.

Regards,
Ben

> as allways, your help is greatly appreciated,
>
> thanks,
>
> Andras
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help