C'è un modo più rapido per fare un indice contatore rispetto all'utilizzo di un ciclo? All'interno di esecuzioni contigue di valori uguali, l'indice dovrebbe essere lo stesso. Trovo il loop molto lento specialmente quando i dati sono così grandi.Aggiungere l'indice alle corse contigue di uguali valori
Per illustrazione, ecco l'ingresso e l'uscita desiderata
x <- c(2, 3, 9, 2, 4, 4, 3, 4, 4, 5, 5, 5, 1)
desiderata contatore risultante:
c(1, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 8, 9)
noti che non piste -contiguous hanno differenti indici. Per esempio. consultare gli indici desiderati dei valori 2
e 4
mio codice inefficiente è questo:
group[1]<-1
counter<-1
for (i in 2:n){
if (x[i]==x[i-1]){
group[i]<-counter
}else{
counter<-counter+1
group[1]<-counter}
}
Grazie TimoSta per le modifiche =) – Rens