Comment utiliser la fonction replicate() dans R (avec exemples)
Vous pouvez utiliser la fonction replicate() pour évaluer de manière répétée une expression dans R un certain nombre de fois.
Cette fonction utilise la syntaxe de base suivante :
répliquer (n, expr)
où:
- n : Le nombre de fois où il faut évaluer de manière répétée une expression.
- expr : L’expression à évaluer.
Les exemples suivants montrent comment utiliser cette fonction dans la pratique.
Exemple 1 : répliquer une valeur plusieurs fois
Le code suivant montre comment utiliser la fonction replicate() pour évaluer de manière répétée une seule valeur plusieurs fois :
#replicate the value 3 exactly 10 times replicate(n=10, 3) [1] 3 3 3 3 3 3 3 3 3 3 #replicate the letter 'A' exactly 7 times replicate(n=7, 'A') [1] "A" "A" "A" "A" "A" "A" "A" #replicate FALSE exactly 5 times replicate(n=5, FALSE) [1] FALSE FALSE FALSE FALSE FALSE
Exemple 2 : répliquer une fonction plusieurs fois
Supposons maintenant que nous souhaitions évaluer à plusieurs reprises une fonction.
Par exemple, supposons que nous utilisions la fonction rnorm() pour produire trois valeurs pour une variable aléatoire qui suit une distribution normale avec une moyenne de 0 et un écart type de 1 :
#make this example reproducible
set.seed(1)
#generate 3 values that follow normal distribution
rnorm(3, mean=0, sd=1)
[1] -0.6264538 0.1836433 -0.8356286
En utilisant la fonction replicate() , nous pouvons évaluer de manière répétée cette fonction rnorm() un certain nombre de fois.
Par exemple, on peut évaluer cette fonction 5 fois :
#make this example reproducible
set.seed(1)
#generate 3 values that follow normal distribution (replicate this 4 times)
replicate(n=4, rnorm(3, mean=0, sd=1))
[,1] [,2] [,3] [,4]
[1,] 1.5952808 0.4874291 -0.3053884 -0.6212406
[2,] 0.3295078 0.7383247 1.5117812 -2.2146999
[3,] -0.8204684 0.5757814 0.3898432 1.1249309
Le résultat est une matrice de 3 lignes et 4 colonnes.
Ou peut-être aimerions-nous évaluer cette fonction 6 fois :
#make this example reproducible
set.seed(1)
#generate 3 values that follow normal distribution (replicate this 6 times)
replicate(n=6, rnorm(3, mean=0, sd=1))
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1.5952808 0.4874291 -0.3053884 -0.6212406 -0.04493361 0.8212212
[2,] 0.3295078 0.7383247 1.5117812 -2.2146999 -0.01619026 0.5939013
[3,] -0.8204684 0.5757814 0.3898432 1.1249309 0.94383621 0.9189774
Le résultat est une matrice de 6 lignes et 3 colonnes.
Utiliser replicate() pour simuler des données
La fonction replicate() est particulièrement utile pour exécuter des simulations.
Par exemple, supposons que nous souhaitions générer 5 échantillons de taille n = 10 qui suivent chacun une distribution normale.
Nous pouvons utiliser la fonction replicate() pour produire 5 échantillons différents et nous pouvons ensuite utiliser la fonction colMeans() pour trouver la valeur moyenne de chaque échantillon :
#make this example reproducible set.seed(1) #create 5 samples each of size n=10 data <- replicate(n=5, rnorm(10, mean=0, sd=1)) #view samples data [,1] [,2] [,3] [,4] [,5] [1,] -0.6264538 1.51178117 0.91897737 1.35867955 -0.1645236 [2,] 0.1836433 0.38984324 0.78213630 -0.10278773 -0.2533617 [3,] -0.8356286 -0.62124058 0.07456498 0.38767161 0.6969634 [4,] 1.5952808 -2.21469989 -1.98935170 -0.05380504 0.5566632 [5,] 0.3295078 1.12493092 0.61982575 -1.37705956 -0.6887557 [6,] -0.8204684 -0.04493361 -0.05612874 -0.41499456 -0.7074952 [7,] 0.4874291 -0.01619026 -0.15579551 -0.39428995 0.3645820 [8,] 0.7383247 0.94383621 -1.47075238 -0.05931340 0.7685329 [9,] 0.5757814 0.82122120 -0.47815006 1.10002537 -0.1123462 [10,] -0.3053884 0.59390132 0.41794156 0.76317575 0.8811077 #calculate mean of each sample colMeans(data) [1] 0.1322028 0.2488450 -0.1336732 0.1207302 0.1341367
À partir du résultat, nous pouvons voir :
- La moyenne du premier échantillon est de 0,1322 .
- La moyenne du deuxième échantillon est de 0,2488 .
- La moyenne du troisième échantillon est de -0,1337 .
Et ainsi de suite.
Ressources additionnelles
Comment sélectionner des colonnes spécifiques dans R
Comment supprimer des colonnes du bloc de données dans R
Comment supprimer des lignes du bloc de données en fonction de la condition dans R