Dado un sortkey, ¿hay un acceso directo data.table para duplicar las funcionalidades first
y last
encontradas en SAS y SPSS?usando data.table para marcar el primer (o último) registro en un grupo
El siguiente acercamiento peatonal marca el primer registro de un grupo.
Dada la elegancia de data.table (con el que poco a poco me estoy familiarizando), supongo que hay un atajo con una autocombinación & mult
, pero todavía estoy tratando de resolverlo.
Aquí está el ejemplo:
require(data.table)
set.seed(123)
n <- 17
DT <- data.table(x=sample(letters[1:3],n,replace=T),
y=sample(LETTERS[1:3],n,replace=T))
sortkey <- c("x","y")
setkeyv(DT,sortkey)
key <- paste(DT$x,DT$y,sep="-")
nw <- c(T , key[2:n]!=key[1:(n-1)])
DT$first <- 1*nw
DT
buenas respuestas aquí, incluyendo un conjunto de datos. tabla de solución: http://stats.stackexchange.com/questions/7884/fast-ways-in-r-to-get-the-first-row-of-a-data-frame-grouped-by-an-identifier/7889 # 7889 – Chase
Creo que el M.Dimo específicamente quiere * etiquetar * el primero y el último en el grupo en lugar de * extraer * ellos. El enlace que apuntó, así como el enfoque 'mult 'al que se refiere el OP, muestran cómo * extraer *, no * etiqueta *. –