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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *