vectores seleccionar listas elementos data contar concatenar columnas agregar r vector

seleccionar - Extrae cada enésimo elemento de un vector



seleccionar columnas en r (3)

Me gustaría crear un vector en el que cada elemento sea el elemento i+6th de otro vector.

Por ejemplo, en un vector de longitud 120 quiero crear otro vector de longitud 20 en el que cada elemento sea el valor i, i+6, i+12, i+18... del vector inicial, es decir, quiero extraer cada 6to elemento del original.


Creo que estás preguntando dos cosas que no son necesariamente las mismas

Quiero extraer cada 6º elemento del original

Puedes hacer esto indexando una secuencia:

foo <- 1:120 foo[1:20*6]

Me gustaría crear un vector en el que cada elemento sea el elemento i + 6º de otro vector.

Una manera fácil de hacerlo es complementar un factor lógico con FALSE hasta que i+6 :

foo <- 1:120 i <- 1 foo[1:(i+6)==(i+6)] [1] 7 14 21 28 35 42 49 56 63 70 77 84 91 98 105 112 119 i <- 10 foo[1:(i+6)==(i+6)] [1] 16 32 48 64 80 96 112


Otro truco para obtener piezas secuenciales (más allá de la solución seq ya mencionada) es usar un vector lógico corto y usar reciclaje de vectores:

foo[ c( rep(FALSE, 5), TRUE ) ]


a <- 1:120 b <- a[seq(1, length(a), 6)]