Tirage au sort

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

Audrey Winter
Messages : 97
Enregistré le : 12 Mai 2014, 15:17

Tirage au sort

Messagepar Audrey Winter » 20 Déc 2014, 14:16

Bonjour,
J'ai une base de référence avec 99 patients et 3 autres bases créée à partir d'appariement sur plusieurs critères de ces mêmes 99 patients. Dans ces bases, on retrouve leurs noms.
Mon but est de créer 10 nouvelles bases avec 99 patients chacune.
Je voulais faire quelque chose comme ça :

Code : Tout sélectionner

for (i in 1:length(denovo$Nom)){
ligne <- sample(which(table1$Nom_A==denovo$Nom[i]), 1) 
lignes <- c(ligne,lignes)
}


Mais ça ne marche pas.
Si quelqu'un a une idée !
merci !!!

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 22 Déc 2014, 09:35

Qu'est-ce qui ne marche pas ? Il nous faut les données ou un exemple reproductible pour vous répondre.
Renaud

Audrey Winter
Messages : 97
Enregistré le : 12 Mai 2014, 15:17

Messagepar Audrey Winter » 22 Déc 2014, 10:41

et bien c'est Nom[i] qui ne marche pas je suppose ... si je met un nom comme "Dupont" par exemple ça marche... Bref j'ai du coup recodé ma base en attribuant à chaque nom un numéro et ça marche.
Merci qd mm

Alexis Thieullen
Messages : 128
Enregistré le : 04 Jan 2011, 12:11

Messagepar Alexis Thieullen » 22 Déc 2014, 12:46

Bonjour,
Un problème peut venir du fait que quand tu utilises la fonction 'sample', tu spécifies en entrée pour ton tirage aléatoire le résultat de l'expression :

Code : Tout sélectionner

which(table1$Nom_A==denovo$Nom[i])

qui te renvoie, si j'ai bien suivi, un entier. Or l'aide de la fonction 'sample' précise la chose suivante :
If x has length 1, is numeric (in the sense of is.numeric) and x >= 1, sampling via sample takes place from 1:x.


Par exemple si la ligne de 'table1' dont le nom correspond à 'denovo$Nom[i]' est la ligne X, alors ta fonction 'sample' fera un tirage aléatoire d'1 entier compris entre 1 et X.

Après sans exemple reproductible ni même le message d'erreur obtenu (si erreur), difficile d'en dire plus...


Retourner vers « Questions en cours »

Qui est en ligne

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