Tirage au hasard de lignes avec des probabilités différentes dans un dataframe

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Elsa Bussière
Messages : 86
Enregistré le : 30 Mar 2011, 09:34
Contact :

Tirage au hasard de lignes avec des probabilités différentes dans un dataframe

Messagepar Elsa Bussière » 19 Mar 2018, 15:26

Bonjour,

J'ai un tableau (dataframe) et j'aimerais pouvoir tirer au hasard un certain nombre de lignes (sous-tableau), par exemple 3 lignes, sachant que chaque ligne a une probabilité différente d'être tirée (probabilité donnée dans colonne Prob).

Code : Tout sélectionner

Year Area CavitySize Parasitism LayingDate        Prob
1 2012    A          3          0         23         0,3
2 2012    B          3          1         36 0,138888889
3 2012    A          4          0         43 0,377777778
4 2012    A          4          1         24 0,061111111
5 2012    B          5          1         45 0,122222222


Comment puis-je réaliser cela?

Merci
Elsa
Elsa Bussière

Abdel-aziz Traoré
Messages : 5
Enregistré le : 13 Mar 2017, 11:08

Re: Tirage au hasard de lignes avec des probabilités différentes dans un dataframe

Messagepar Abdel-aziz Traoré » 19 Mar 2018, 15:52

Bonjour,

Normalement ce que vous demandez est faisable avec sample.

Par exemple, pour tirer aléatoirement 3 lignes :

Code : Tout sélectionner


T <- Data[sample(1:nrow(Data),3),]



Il y a un paramètre "prob" dans la fonction sample qui pourrait vous aider.

Cordialement

Elsa Bussière
Messages : 86
Enregistré le : 30 Mar 2011, 09:34
Contact :

Re: Tirage au hasard de lignes avec des probabilités différentes dans un dataframe

Messagepar Elsa Bussière » 19 Mar 2018, 16:03

Je crois bien que cela fonctionne.
data = nom du dataframe

Code : Tout sélectionner

T <- sample_n(data, 3, weight = data$Prob)

Vous m'avez mise sur la voie.
Merci
Elsa
Elsa Bussière


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité