replicate() fonction dans R
![replicate() fonction dans R](/img/R/feature-image---replicate-in-r.webp)
La fonction replicate()
peut être utilisée pour créer des simulations car elle peut répéter une expression un nombre spécifique de fois. Nous pouvons également contrôler le type de résultat final sous forme de tableau ou de liste en utilisant le paramètre simplify
.
Un exemple simple de la fonction replicate()
est présenté ci-dessous :
replicate(5,1)
[1] 1 1 1 1 1
Comme vous pouvez le voir dans l’exemple ci-dessus, 1
est l’expression qui est répétée 5 fois. Notez que le résultat final est ici un tableau. Si nous ajoutons le paramètre simplifier
à la fonction (qui est True
par défaut) et le mettons à False
, nous obtiendrons une liste au lieu d’un tableau. Par exemple :
typeof(replicate(5,1,simplify = FALSE))
[1] "list"
Nous pouvons également utiliser le paramètre replicate()
pour des simulations plus complexes, comme la création d’un tableau en 2D. L’extrait de code suivant montrera comment nous procédons.
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
Dans cet exemple, nous utilisons la fonction seq()
pour créer une séquence simple. Elle crée une séquence de 1 à 10 avec un incrément de 1. La fonction replicate()
répète la séquence 5 fois pour générer un tableau à deux dimensions.
Nous pouvons également utiliser la boucle for()
pour une telle situation. Par exemple :
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
Notez que nous devons utiliser un tableau numérique comme instruction supplémentaire en dehors de la parenthèse bouclée ; sinon, la fonction replicate()
obtiendra la valeur NULL
car la valeur sera vidée comme un déchet et ne sera pas stockée puisque nous utilisons la boucle for()
.
arr2d <- replicate(5, {
for(i in 1:5){print(i)}} )
print(arr2d)
Production :
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
[[4]]
NULL
[[5]]
NULL
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn