Necesito descomponer un vector en una serie de x y repetir, no estoy muy seguro de cuál es el término adecuado para esto. Es el inverso de la función rep
. Así un vectorcomprimir vector en (inverso de rep)
[1,2,2,2,2,1,1,1,1,1,2,2] -> [1x1, 4x2, 5x1, 2x2]
me escribió una pequeña función para hacer esto, pero estoy seguro de que debe haber una manera más orígenes:
invrep <- function(y){
numy <- as.numeric(y);
newpoints <- which(c(T,diff(numy) != 0));
x <- y[newpoints];
times <- diff(c(newpoints, length(numy)+1));
return(list(x=x, times=times));
}
myvec <- factor(floor(runif(50,0,3)), levels=0:2, labels=c("blue", "yellow", "red"));
myrep <- invrep(myvec);
identical(myvec, rep(myrep$x, myrep$times));
'sort' +' rle'? ¿O simplemente 'tabla'? No lo entiendo del todo – joran
Dang Joran me ganó. Joran, probablemente deberías darle esa respuesta, ya que supongo que es la mejor o la mejor. –
@Joran es simplemente 'rle' sin ningún' tipo' – smci