Comment puis-je générer un vecteur avec un pas d'incrémentation spécifié (par exemple 2) ? Par exemple, comment puis-je produire ce qui suit
0 2 4 6 8 10
Comment puis-je générer un vecteur avec un pas d'incrémentation spécifié (par exemple 2) ? Par exemple, comment puis-je produire ce qui suit
0 2 4 6 8 10
L'exemple suivant montre des points de repère pour quelques alternatives.
library(rbenchmark) # Note spelling: "rbenchmark", not "benchmark"
benchmark(seq(0,1e6,by=2),(0:5e5)*2,seq.int(0L,1e6L,by=2L))
## test replications elapsed relative user.self sys.self
## 2 (0:5e+05) * 2 100 0.587 3.536145 0.344 0.244
## 1 seq(0, 1e6, by = 2) 100 2.760 16.626506 1.832 0.900
## 3 seq.int(0, 1e6, by = 2) 100 0.166 1.000000 0.056 0.096
Dans ce cas, seq.int
est la méthode la plus rapide et seq
le plus lent. Si la performance de cette étape n'est pas si importante (il faut toujours moins de 3 secondes pour générer une séquence de 500 000 valeurs), je peux toujours utiliser la méthode suivante seq
comme la solution la plus lisible.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.