Je dispose de dix observations numérotées de 1 à 10.
Je dispose également d'un dataframe df1 de 10 lignes et de 07 colonnes:
Code : Tout sélectionner
df1<- structure(list(V1 = c(0.496022876614409, 0, 0, 0.293397804696853,
2.77791485207083e-14, 0.293397804696853, 0.346729024941169, 0.0369526364535979,
0, 0),
V2 = c(0.00975065943364844, 0.830750312869943, 0.617875374871652, 0.0078345813378116, 0.65696735904031, 0.0078345813378116, 0.0110169960795965, 0.00591247097972129, 0.0645899722977403, 0.92180630951106),
V3 = c(0.304900342803127, 0.102986957094514, 0.325881142746385, 0.184558955526936, 0.0595681518501199,
0.184558955526936, 0.496291920663273, 0.826844169947426, 0.0397211554267018, 0.0368634124982575),
V4 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
V5 = c(0.0780912934727219, 0.0218248502319753, 0.0237924251223754, 0.132965124020154, 0.0511162665473664, 0.132965124020154,
0.0744228952812366, 0.0262178401711357, 0.85195278838371, 0.023416058169408),
V6 = c(0.111234827676212, 0.044437879803664, 0.0324510572596891, 0.381243534418359, 0.232348222562295, 0.381243534418359,
0.0715391630348402, 0.104072882448235, 0.0437360838919472, 0.01791421982137),
ID = 1:10), class = "data.frame", row.names = c(NA, 10L))
la 7ème colonne représente l'identifiant de chaque observation.
Les colonnes 1 à 6 représentent des box . Chaque ligne représente des probabilités d'affectation de chaque observation à un box.
Chaque observation doit être affectée à un et un seul box à travers un tirage aléatoire et selon les probabilités présentes.
Je souhaiterais de l'aide pour implémenter la procédure et également associer chaque observation au box auquel il a été affecté.
Si par exemple lors du tirage, les observations:
-1,3,6 sont affectées au box 3;
-2 est affectée au box 2;
-4, 10 sont affectées au box 6;
-5, 7 sont affectées au box 5;
-8, 9 sont affectée au box 1.
Je voudrais obtenir un tel tableau final
Code : Tout sélectionner
df2<-structure(list(ID = 1:10,
box = c("v3", "V2", "V3", "v6", "V5",
"V3", "v5", "v1", "V1", "V6")),
class = "data.frame", row.names = c(NA,10L))
Cordialement
Fabrice Yaméogo