Échantillonnage aléatoire d'un pourcentage de lignes dans un bloc de données
Liées à cette question.
gender <- c("F", "M", "M", "F", "F", "M", "F", "F")
age <- c(23, 25, 27, 29, 31, 33, 35, 37)
mydf <- data.frame(gender, age)
mydf[ sample( which(mydf$gender=='F'), 3 ), ]
Au lieu de sélectionner un certain nombre de lignes (3 dans le cas ci-dessus), comment puis-je sélectionner au hasard des 20% de lignes avec des "F"? Si des cinq lignes avec "F", comment dois-je au hasard de l'échantillon de 20% de ces lignes.
source d'informationauteur ATMathew
Vous devez vous connecter pour publier un commentaire.
Comment à ce sujet:
0,2 est votre 20% et
length(which(mydf$gender=='F'))
est le nombre total de lignes avecF
Vous pouvez utiliser
sample_frac()
fonction dansdplyr
paquet.par exemple
Si vous voulez goûter à 20 % au sein de chaque groupe:
Si vous voulez goûter à 20 % au sein de chaque groupe de genre:
L'auto-promotion d'alerte. J'ai écrit une fonction qui permet la pratique de l'échantillonnage stratifié, et j'ai inclus une option de sous-ensemble de niveaux de la le regroupement de variables avant l'échantillonnage.
La fonction est appelée
stratified
et peut être utilisé dans l'une des manières suivantes:Vous pouvez spécifier plusieurs groupes (par exemple, si votre bloc de données inclus un "état" de la variable, et que vous vouliez groupe par "état" et "genre", vous devez spécifier
group = c("state", "gender")
). Vous pouvez également spécifier plusieurs "sélectionner" des arguments (par exemple, si vous vouliez seulement les répondants de sexe féminin, de la Californie et du Texas, et votre "état" variable utilisée à deux lettres de l'état des abréviations, vous pouvez spécifierselect = list(gender = "F", state = c("CA", "TX"))
).La fonction elle-même peut être trouvé ici ou vous pouvez télécharger et installer le paquet (qui vous donne un accès pratique à l'aide des pages et des exemples) en utilisant
install_github
de la "devtools" paquet comme suit:De l'échantillon de 20%, vous pouvez l'utiliser pour obtenir la taille de l'échantillon: