Skip to content
Prev 346890 / 398498 Next

rle with data.table - is it possible?

Here is what I get when I try to use your algorithm:

myf <- function( s ) {
   seg <- rep( 0, length( s ) )
   rs <- rle( s )
   span <- rs$lengths[ rs$values ]
   seg[ s ] <- rep( seq_along( span ), times = span )
   seg
}

DT <- data.table( x )
DT[ , dadseg := myf( Dad %in% c( "AA", "RR" ) ), by=Group ]
DT[ , mumseg := myf( Mum %in% c( "AA", "RR" ) ), by=Group ]
DT[ , childseg := myf( Child %in% c( "AA", "RR" ) ), by=Group ]
Dad Mum Child Group dadseg mumseg childseg
  1:  AA  RR    RA     A      1      1        0
  2:  AA  RR    RR     A      1      1        1
  3:  AA  AA    AA     B      1      1        1
  4:  AA  AA    AA     B      1      1        1
  5:  RA  AA    RR     B      0      1        1
  6:  RR  AA    RR     B      2      1        1
  7:  AA  AA    AA     B      2      1        1
  8:  AA  AA    RA     C      1      1        0
  9:  AA  AA    RA     C      1      1        0
10:  AA  RR    RA     C      1      1        0
On Fri, 2 Jan 2015, Jeff Newmiller wrote:

            
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                       Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k