Bonjour à tous,
Je me tourne vers vous pour avoir des conseils concernant un script R que je n'arrive pas à construire (je suis débutante...).
J'aimerais faire une boucle assez complexe (à mon niveau):
Je considère 3 relevés d'observations : 6498, 6537, 6538.
J'aimerais réaliser n tirage aléatoires successif avec remise sur ces 3 relevés, en sélectionner un parmi les 3 à chaque tour de la boucle.
A chaque tirage aléatoire d'un relevé, j'aimerais enregistrer dans le tableau le numéro du relevé (n=x) dans la colonne x1, une autre information que je récupère sur un serveur (id_ma) (colonne x2), et dans la dernière colonne (x3), j'aimerais le nombre d'id_ma différents pour n compris entre 1 et x.
Voilà ce que j'ai fais pour l'instant :
pour la troisième colonne : si c'est le premier tirage, alors la troisième colonne prend la valeur 1 obligatoirement, ensuite soit le numéro
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 listeiso<-c(6498, 6537, 6538) #mes trois numéros de relevés qui sont reliés au serveur data_1 <- data.frame(x1 = numeric(), x2 = character(), x3 = numeric()) #je créé un tableau vide que la boucle devra remplir n=10 #je défini le nombre de tirages for (i in 1:n){ #on fait n tirage (définis avant) chaque tirage est numéroté i + sample(listeiso,1,replace=FALSE) #on tire 1 relevé parmi 3 relevés, avec remise + data_1[i,1] <- i # la première colonne prend la valeur du numéro du tirage, i + data_1[i,2] <- dbGetQuery(etc...) # la deuxième colonne va chercher le numéro id_ma correspondant + data_1[i,3] <- ifelse (i = 1,1,if(data_1[i,2] != data_1[i-1,2]){ data_1[i,3] <- 1} }
id_ma est identique au précédent et on affiche 0, soit il est nouveau et on affiche 1, je comptais ensuite faire la somme des valeurs de la colonne pour avoir le nombre d'id_ma différents.
Mon script ne fonctionne pas et je ne suis pas très doué en code... Avec ce script j'ai seulement mes colonnes 1 et 2 qui sont renseignées, et seulement pour la ligne n.10 de mon tableau...
J'ai l'impression qu'il me sélectionne toujours le même relevé sans vraiment piocher aléatoirement. Bref il y a un soucis de boucle.
Pourriez-vous m'éclairer ?
Bonne soirée,
Cordialement.
Partager