vectores ordenar filas eliminar datos data contar r vector elements

ordenar - R: eliminando los últimos elementos de un vector



seq en r (6)

¿Cómo puedo eliminar los últimos 100 elementos de una serie de zoológico?

Sé la notación del nombre [-elemento] pero no puedo hacer que funcione para restar una sección completa


Apuesto que la length<- es la forma más eficiente de recortar un vector:

> x <- 1:10^5 > length(x) [1] 100000 > length(x) <- 3 > x [1] 1 2 3


En realidad, hay una manera mucho más rápida:

y <- x[1:(length(x)-1)]

Muestra del código:

> microbenchmark( y <- head(x, -1), y <- x[-length(x)],y <- x[1:(length(x)-1)], times=10000) Unit: microseconds expr min lq mean median uq max y <- head(x, -1) 71.399 76.4090 85.97572 78.9230 84.2775 2795.076 y <- x[-length(x)] 53.623 55.5585 65.15008 56.5680 61.1585 2523.141 y <- x[1:(length(x) - 1)] 25.722 28.2925 36.43029 29.1855 30.4010 2410.975


Otro one-liner en aras de la exhaustividad:

x <- lag(x, 100)[-1:-100]


Solo use los índices numéricos, es decir,

N <- nrow(X) X <- X[1:(N-100-1),]

donde debe asegurarse de que N sea ​​más grande, 100, etc.


si eres un trazador de líneas

x = x[1:(length(x) -101)]


Me gusta usar la head para esto porque es más fácil escribir. Los otros métodos probablemente se ejecuten más rápido ... pero soy flojo y mi computadora no. ;-)

x <- head(x,-100) > head(1:102,-100) [1] 1 2