Try
DT[c(T, tail(a, -1) != head(a,-1))] ## a b ## 1: 1 8 ## 2: 2 7 ## 3: 3 5 On Wed, Apr 30, 2014 at 4:59 PM, Michael Smith <[email protected]> wrote: > ... and here's a new challenge. What if `a` is character? > > DT <- data.table(a = as.character(c(1, 2, 2, 3)), b = 8:5) > DT[, L.a := c(NA, head(a, -1))][a != L.a | is.na(L.a)][, L.a := NULL][] > > I still would like to compare equality with the previous > observation/row, and remove it if it's the same. (`diff` doesn't work > with characters.) > > M > > > > On 04/30/2014 04:55 PM, Michael Smith wrote: > > Chinmay, > > > > Kudos, that's a nice one! It also can be generalized to longer lags. > > Thanks! > > > > M > > > > On 04/30/2014 03:59 PM, Chinmay Patil wrote: > >> You can try > >> > >> DT > >> ## a b > >> ## 1: 1 8 > >> ## 2: 2 7 > >> ## 3: 2 6 > >> ## 4: 3 5 > >> > >> DT[c(T,diff(a)!=0),] > >> ## a b > >> ## 1: 1 8 > >> ## 2: 2 7 > >> ## 3: 3 5 > >> > >> > >> > >> > >> On Tue, Apr 29, 2014 at 10:04 PM, Michael Smith <[email protected] > >> <mailto:[email protected]>> wrote: > >> > >> All, > >> > >> Is there some data.table-idiomatic way to filter based on a previous > >> observation/row? For example, I want to remove a row if > >> DT$a[row]==DT$a[row-1]. > >> > >> It could be done by first calculating the lag and then filtering > based > >> on that, but I wonder if there's a more direct way. > >> > >> The following example works, but my feeling is there should be a > more > >> elegant solution: > >> > >> ( DT <- data.table(a = c(1, 2, 2, 3), b = 8:5) ) > >> DT[, L.a := c(NA, head(a, -1))][a != L.a | is.na > >> <http://is.na>(L.a)][, L.a := NULL][] > >> > >> Thanks, > >> M > >> _______________________________________________ > >> datatable-help mailing list > >> [email protected] > >> <mailto:[email protected]> > >> > https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help > >> > >> >
_______________________________________________ datatable-help mailing list [email protected] https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
