HOWTO · R
Función replicate() en R
Este tutorial introduce el uso de la función replicate() en R
En esta página
La función replicate() puede utilizarse para crear simulaciones, ya que puede repetir una expresión un número determinado de veces. También podemos controlar el tipo del resultado final como un array o una lista utilizando el parámetro simplify.
A continuación se muestra un ejemplo sencillo de la función replicate():
replicate(5,1)
[1] 1 1 1 1 1
Como puede ver en el ejemplo anterior, 1 es la expresión que se repite 5 veces. Observe que el resultado final es un array. Si añadimos el parámetro simplify a la función (que es True por defecto) y lo ponemos a False, obtendremos una lista en lugar de un array. Por ejemplo:
typeof(replicate(5,1,simplify = FALSE))
[1] "list"
También podemos utilizar la función replicate() para simulaciones más complejas, como la creación de un array bidimensional. El siguiente fragmento de código mostrará cómo lo hacemos.
replicate(5, seq(1,10,1))
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 2 2 2 2 2
[3,] 3 3 3 3 3
[4,] 4 4 4 4 4
[5,] 5 5 5 5 5
[6,] 6 6 6 6 6
[7,] 7 7 7 7 7
[8,] 8 8 8 8 8
[9,] 9 9 9 9 9
[10,] 10 10 10 10 10
En este ejemplo, usamos la función seq() para crear una secuencia simple. Crea una secuencia del 1 al 10 con un incremento de 1. replicate() repite la secuencia 5 veces para generar un array 2-D.
También podemos utilizar el bucle for() para esta situación. Por ejemplo:
n <- numeric(5)
arr2d <- replicate(5, {
for(i in 1:5){n[i] <- print(i)};n} )
print(arr2d)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 2 2 2 2 2
[3,] 3 3 3 3 3
[4,] 4 4 4 4 4
[5,] 5 5 5 5 5
Tenga en cuenta que tenemos que utilizar un vector numérico como una declaración extra fuera de la llave; de lo contrario, la función replicate() obtendrá el valor NULL ya que el valor se vierte como basura y no se almacena ya que estamos utilizando el bucle for().
arr2d <- replicate(5, {
for(i in 1:5){print(i)}} )
print(arr2d)
Producción :
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
[[4]]
NULL
[[5]]
NULL