Vidéo: Tutoriel 05 Bis R - Manipuler une table de données (data frame) 2025
Les statisticiens doivent souvent prélever des échantillons de données et ensuite calculer des statistiques. Prendre un échantillon est facile avec R parce qu'un échantillon n'est vraiment rien de plus qu'un sous-ensemble de données. Pour ce faire, vous utilisez sample (), qui prend un vecteur en entrée; alors vous lui dites combien d'échantillons à tirer de cette liste.
Supposons que vous vouliez simuler des jets de dés et que vous vouliez obtenir dix résultats. Parce que le résultat d'un seul jet de dé est un nombre entre un et six, votre code ressemble à ceci:
Vous dites à sample () de renvoyer dix valeurs, chacune La portée est de 1: 6. Comme chaque jet de dé est indépendant de tous les autres jets de dé, vous échantillonnez avec le remplacement. Cela signifie que vous prenez un échantillon de la liste et réinitialisez la liste à son état d'origine (en d'autres termes, vous mettez l'élément que vous venez de dessiner dans la liste).
Comme la valeur de retour de la fonction sample () est un nombre déterminé au hasard, si vous essayez cette fonction plusieurs fois, vous obtiendrez des résultats différents à chaque fois. C'est le comportement correct dans la plupart des cas, mais parfois vous pouvez vouloir obtenir des résultats reproductibles chaque fois que vous exécutez la fonction.
Habituellement, cela ne se produit que lorsque vous développez et testez votre code, ou si vous voulez être certain que quelqu'un d'autre peut tester votre code et obtenir les mêmes valeurs que vous. Dans ce cas, il est habituel de spécifier une valeur de départ appelée
.
Mais si vous ne définissez pas la graine, R tire à partir de l'état actuel du générateur de nombres aléatoires (RNG). Au démarrage, R peut définir une graine aléatoire pour initialiser le RNG, mais chaque fois que vous l'appelez, R part de la valeur suivante dans le flux RNG. Vous pouvez lire l'aide pour? RNG pour obtenir plus de détails.
Dans R, vous utilisez l'ensemble. La fonction seed () permet de spécifier la valeur de départ de votre seed. L'argument à définir. seed () est une valeur entière. >> défini. seed (1)> sample (1: 6, 10, replace = VRAI) [1] 2 3 4 6 2 6 6 4 4 1
Si vous dessinez un autre échantillon sans placer de graine, vous obtenez un ensemble différent de résultats, comme vous pouvez l'attendre: >> échantillon (1: 6, 10, replace = TRUE) [1] 2 2 5 3 5 3 5 6 3 5
Maintenant, pour montrer cet ensemble.seed () réinitialise réellement le RNG, réessayez. Mais cette fois, définissez la graine une fois de plus: >> ensemble. seed (1)> sample (1: 6, 10, replace = TRUE) [1] 2 3 4 6 2 6 6 4 4 1
Vous obtenez exactement les mêmes résultats que la première fois que vous avez utilisé set. graine (1).
Vous pouvez utiliser sample () pour prélever des échantillons dans le diaphragme de la trame de données. Dans ce cas, vous pouvez utiliser l'argument replace = FALSE. Comme il s'agit de la valeur par défaut de l'argument replace, vous n'avez pas besoin de l'écrire explicitement: >> set. graine (123)> indice de l'index [1] 44 119 62 133 142> iris [index,] Sepal. Longueur Sepal. Largeur Pétale. Longueur Pétale. Largeur Espèces 44 5. 0 3. 5 1. 6 0. 6 setosa 119 7. 7 2. 6 6. 9 2. 3 virginica 62 5. 9 3. 0 4. 2 1. 5 versicolor 133 6. 4 2. 8 5. 6 2. 2 virginica 142 6. 9 3. 1 5. 1 2. 3 virginica
