Ho un vettore di numeri binari. Conosco la lunghezza consecutiva di ciascun gruppo di oggetti; come posso dividere in base a tali informazioni (senza ciclo for)?Dividere il vettore in base al vettore di lunghezze del blocco
x = c("1","0","1","0","0","0","0","0","1")
.length = c(group1 = 2,group2=4, group3=3)
x
è il numero binario vettore che ho bisogno di dividere. .length
è l'informazione che mi è stata data. .length
essenzialmente mi dice che il primo gruppo ha 2 elementi e sono i primi due elementi 1,0
. Il secondo gruppo ha gli elementi 4
e contiene i 4 numeri che seguono i numeri del gruppo 1, 1,0,0,0
, ecc.
C'è un modo per dividerlo e restituire l'elemento suddiviso in un elenco?
Il modo brutto ha a che fare con un ciclo per tenere traccia dell'attuale cumsum, ma sto cercando un modo più elegante se ce n'è uno.