Comment sélectionner des échantillons aléatoires dans R : avec des exemples
Pour sélectionner un échantillon aléatoire dans R, nous pouvons utiliser la fonction sample() , qui utilise la syntaxe suivante :
échantillon (x, taille, remplacer = FAUX, prob = NULL)
où:
- x : un vecteur d’éléments parmi lesquels choisir.
- taille : taille de l’échantillon.
- replace : s’il faut échantillonner avec remplacement ou non. La valeur par défaut est FALSE.
- prob : vecteur de poids de probabilité pour obtenir des éléments à partir du vecteur. La valeur par défaut est NULL.
Ce didacticiel explique comment utiliser cette fonction pour sélectionner un échantillon aléatoire dans R à la fois à partir d’un vecteur et d’un bloc de données.
Exemple 1 : échantillon aléatoire à partir d’un vecteur
Le code suivant montre comment sélectionner un échantillon aléatoire à partir d’un vecteur sans remplacement :
#create vector of data data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14) #select random sample of 5 elements without replacement sample(x=data, size=5) [1] 10 12 5 14 7
Le code suivant montre comment sélectionner un échantillon aléatoire à partir d’un vecteur avec remplacement :
#create vector of data data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14) #select random sample of 5 elements with replacement sample(x=data, size=5, replace=TRUE) [1] 12 1 1 6 14
Exemple 2 : échantillon aléatoire à partir d’un bloc de données
Le code suivant montre comment sélectionner un échantillon aléatoire à partir d’un bloc de données :
#create data frame df <- data.frame(x=c(3, 5, 6, 6, 8, 12, 14), y=c(12, 6, 4, 23, 25, 8, 9), z=c(2, 7, 8, 8, 15, 17, 29)) #view data frame df x y z 1 3 12 2 2 5 6 7 3 6 4 8 4 6 23 8 5 8 25 15 6 12 8 17 7 14 9 29 #select random sample of three rows from data frame rand_df <- df[sample(nrow(df), size=3), ] #display randomly selected rows rand_df x y z 4 6 23 8 7 14 9 29 1 3 12 2
Voici ce qui se passe dans ce bout de code :
1. Pour sélectionner un sous-ensemble d’un bloc de données dans R, nous utilisons la syntaxe suivante : df[lignes, colonnes]
2. Dans le code ci-dessus, nous sélectionnons au hasard un échantillon de 3 lignes du bloc de données et de toutes les colonnes.
3. Le résultat final est un sous-ensemble du bloc de données avec 3 lignes sélectionnées au hasard.
Il est important de noter que chaque fois que nous utilisons la fonction sample() , R sélectionnera un échantillon différent puisque la fonction choisit les valeurs de manière aléatoire.
Afin de reproduire les résultats de certaines analyses, assurez-vous d’utiliser set.seed(some number) afin que la fonction sample() choisisse le même échantillon aléatoire à chaque fois. Par exemple:
#make this example reproducible set.seed(23) #create data frame df <- data.frame(x=c(3, 5, 6, 6, 8, 12, 14), y=c(12, 6, 4, 23, 25, 8, 9), z=c(2, 7, 8, 8, 15, 17, 29)) #select random sample of three rows from data frame rand_df <- df[sample(nrow(df), size=3), ] #display randomly selected rows rand_df x y z 5 8 25 15 2 5 6 7 6 12 8 17
Chaque fois que vous exécutez le code ci-dessus, les 3 mêmes lignes du bloc de données seront sélectionnées à chaque fois.
Ressources additionnelles
Échantillonnage stratifié dans R (avec exemples)
Échantillonnage systématique dans R (avec exemples)
Échantillonnage de clusters dans R : avec exemples