Effectuer un tirage aléatoire en R

Obtenir un nombre aléatoire en R avec la fonction sample()

Obtenir une valeur aléatoire avec R est en fait un jeu d'enfant., une fonction est totalement dédiée à cet usage en R ! Il s'agit de la fonction sample().

Le fonctionnement de la fonction sample est simple. Dans un premier temps il est nécessaire de définir toutes les valeurs possibles. Il peut s'agir d'un vecteur de nombres entiers (exemple: 1:10).

En ne définissant qu'un vecteur de valeurs possibles, la fonction sample() renvoie ce vecteur de manière aléatoire, en conservant toutes les valeurs. Par exemple :

sample(x = 1:10)
[1] 3 2 8 5 10 9 6 1 7 4

 

Pour définir la sélection d'un ensemble de valeur aléatoire, il est nécessaire de définir un entier pour le paramètre size de la fonction sample(). Par exemple, voici l'instruction pour obtenir 4 valeurs aléatoires de notre vecteur 1:10.

sample(x = 1:10, size = 4)
[1] 5 9 4 8

 

Obtenir une valeur textuelle aléatoire en R

Nous l'avons vu précédemment, l'attribut x de la fonction sample() doit être un vecteur. Nous pouvons donc utiliser un vecteur d'entiers, mais rien n'empêche par exemple d'en tirer une chaîne de caractères.

Pour cela, il est nécessaire de définir au préalable un vecteur de chaînes de caractères et d'effectuer l'opération sur celui-ci. Voici un exemple.

monVecteur <- c("banane", "pomme", "pêche", "orange", "fraise", "abricot")
sample(x = monVecteur, size = 2)
[1] "pêche" "fraise"

 

Aller plus loin avec la fonction sample()

La fonction sample() dispose de deux paramètres supplémentaires. Le paramètre replace permet par exemple de retrouver plusieurs fois la même valeur, en conservant le vecteur originel lors du tirage.

monVecteur <- c("banane", "pomme", "pêche", "orange", "fraise", "abricot")
sample(x = monVecteur, size = 3, replace = TRUE)
[1] "banane" "fraise" "banane"

 

Enfin, le paramètre prob permet de définir pour chaque valeur du vecteur une probabilité lors du tirage.

Article précédent
gestion des dates en R

A propos de l'auteur

David Looses

David Looses est consultant en référencement sénior à l'agence SEO de Lille Aseox. Il est passionné par le langage R et est spécialiste du traitement des données.