studio - superponer graficas en r
¿Cómo puedo generar una lista con un paso de incremento específico? (3)
El siguiente ejemplo muestra puntos de referencia para algunas alternativas.
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
En este caso, seq.int
es el método más rápido y seq
el más lento. Si el rendimiento de este paso no es tan importante (todavía demora <3 segundos generar una secuencia de 500,000 valores), aún podría usar seq
como la solución más legible.
¿Cómo genero un vector con un paso de incremento específico (por ejemplo, 2)? Por ejemplo, ¿cómo puedo producir los siguientes
0 2 4 6 8 10
La ejecución de seq(1, 10, 1)
hace lo que hace 1:10
. Puede cambiar el último parámetro de seq
, es decir, para que sea el paso del tamaño que desee.
> #a vector of even numbers
> seq(0, 10, by=2) # Explicitly specifying "by" only to increase readability
> [1] 0 2 4 6 8 10
Puedes usar la multiplicación escalar para modificar cada elemento en tu vector.
> r <- 0:10
> r <- r * 2
> r
[1] 0 2 4 6 8 10 12 14 16 18 20
o
> r <- 0:10 * 2
> r
[1] 0 2 4 6 8 10 12 14 16 18 20