2009-10-16 6 views
0

Quelles sont les meilleures options pour convertir un temps d'occurrence non décroissant en un 0-1 seq? Merci.R: Occurrence -> séquence binaire?

d<-c(3,5,9,12,15); 
c(rep(0,d[1]-1),1,unlist(rbind(mapply(rep,0,diff(d)-1),1))) 

Répondre

6

Je pense que cela devrait faire la même chose

d <- c(3,5,9,12,15); 
x <- integer(max(d)) # initialize integer vector where all entries are zero; 
         # length(x) = max(d) (or last element of d) 
x[d] <- 1L    # set x to 1 at the position of each occurence   
+1

bonne réponse! peut être un commentaire ou deux aidera les non-initiés. –

+0

Pourquoi avez-vous besoin de 1 et L? Pour mon but, il est préférable de laisser L être formé par les uns ou les tailles (aléatoires) d'événements quand ils se produisent. Donc la réponse n'est pas bonne, mais très bonne! – andrekos

+0

juste pour l'efficacité de la mémoire;) avec 1L la classe du tableau est entière, sinon elle est numérique; voir, par exemple, class (1L) et class (1) – rcs