2010-04-17 4 views
3

En R, quel est le moyen le plus efficace pour compter la longueur entre 2 valeurs. par exemple, j'ai le vecteur x, qui sont tous choisis au hasard de 1 à 100, comment puis-je trouver la longueur entre le premier "2" et le premier "40", x = (1,2, 3,4, 5,6,7, 40,1,2, 3,21,4,1,23,4, 43,23,4,12,3,43,5,36,3,45,12,31 , 3,4,23,41,23,5,53,45,3,7,6,36) pour ce vecteur, la réponse devrait être 5 et 6longueur entre 2 valeurs

Répondre

5

Je ne suis pas sûr d'avoir bien compris vous voulez, mais voici une approche

x<-c(1,2,3,4,5,6,7,40,1,2,3,21,4,1,23,4,43,23,4,12,3,43,5,36,3,45,12,31,3,4,23,41,23,5,53,45,3,7,6,36) 

first2 <- which(x==2)[1] 
first40 <- which(x>=40)[1] 

first40 - first2 - 1 
> 5 

sec2 <- which(x==2)[2] 
sec40 <- which(x>=40)[2] 

sec40 - sec2 - 1 
> 6 
+0

arr.ind = TRUE qu'est-ce que cela signifie? – alex

+0

Pas nécessaire ici, je vais le corriger. Lisez ceci http://finzi.psych.upenn.edu/R/library/base/html/which.html –