Boucle "pour"

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

Julia Meyer
Messages : 4
Enregistré le : 09 Avr 2017, 16:01

Boucle "pour"

Messagepar Julia Meyer » 11 Avr 2017, 13:26

Bonjour,

J'ai quelques difficultés à utiliser le logiciel R ( en particulier la fonction "pour"). Voici l'énoncé qui me pose problème:
j'ai une population de 1501 éléments:

projets_technicien <- projets[emploi== "technicien"]
> projets_technicien
[1] 14 8 7 11 8 9 7 14 10 12 7 8 9 6 8 16 6 7 10 12 9 10 6 9
[25] 7 13 7 12 8 8 8 10 6 8 12 9 7 10 9 10 5 13 11 6 7 6 7 7
[49] 13 9 7 11 9 11 5 7 11 10 9 7 10 6 9 6 15 11 11 9 7 9 8 12
[73] 16 8 6 9 7 6 6 6 10 6 7 12 7 6 11 5 13 5 12 10 10 6 9 8
[97] 11 10 9 6 5 7 12 5 6 13 10 8 6 12 6 8 8 6 5 9 7 10 8 7
[121] 8 7 8 12 11 13 11 8 10 13 8 12 11 8 6 11 16 8 11 11 10 6 13 8
[145] 5 9 6 7 6 12 7 7 9 7 6 13 6 6 10 5 7 9 6 8 9 8 8 10
[169] 8 7 12 7 5 9 9 6 7 6 7 11 8 6 16 11 10 9 6 10 8 7 10 7
[193] 11 8 6 8 14 12 9 10 10 8 7 9 12 9 8 7 6 8 8 6 5 10 7 16
[217] 6 11 7 9 8 11 8 6 10 15 9 7 15 8 7 9 15 11 11 6 9 8 9 6
[241] 6 12 5 8 11 8 9 8 15 12 13 7 12 9 16 11 7 8 16 7 16 8 7 7
[265] 6 10 8 12 7 11 12 5 8 7 12 9 16 9 5 8 9 10 8 6 7 5 7 8
[289] 7 11 6 9 7 7 7 11 7 11 9 9 6 12 6 13 7 10 11 11 7 6 6 7
[313] 11 6 8 10 8 7 6 8 7 7 8 8 14 9 10 8 9 11 5 12 10 9 10 7
[337] 10 8 6 8 6 7 6 16 10 6 8 6 9 8 8 6 7 13 9 9 11 7 10 9
[361] 9 7 7 9 8 10 9 6 7 13 12 8 11 7 6 10 10 11 14 9 12 7 9 6
[385] 16 11 7 7 6 9 11 6 10 6 6 9 12 7 13 9 11 11 6 9 11 8 9 6
[409] 9 8 8 6 9 8 10 8 14 7 7 15 7 6 7 9 7 13 8 6 11 6 7 12
[433] 7 6 7 5 7 8 13 8 6 8 7 6 8 9 10 12 8 7 8 7 10 8 7 7
[457] 7 8 8 10 10 16 6 8 12 5 6 11 7 6 12 9 8 8 8 6 8 8 7 9...

Et je dois tirez un échantillon aléatoire simple de taille n = 50 de la population à l’aide de la fonction « sample » de R 5000 fois :

Avec cette commande, j'ai réussi à faire un échantillonnage:
ech <- sample(x= projets_technicien,size=50)
ech

Maintenant, je veux l'intégrer dans la boucle "pour" mais je n'y arrive pas( toute mes tentatives ont échoué). Ma boucle "pour" ressemble a ça:

for (i in 1:5000) {
ech <- sample(x= projets_technicien,size=50) }
ech}

Pouvez-vous m'aider à faire fonctionner la boucle?

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Boucle "pour"

Messagepar Pierre-Yves Berrard » 11 Avr 2017, 13:47

Bonjour,

L'interieur de votre boucle for ne fait jamais référence à i, donc à chaque nouvelle valeur de i, ech est écrasée par la nouvelle valeur.
Il faudrait en théorie créer une liste vide de taille 5000 ou une matrice de taille 5000*50, puis la remplir au fur et à mesure.

Mais il y a plus simple :

Code : Tout sélectionner

replicate(5000, sample(projets_technicien, 50))
ou

Code : Tout sélectionner

replicate(5000, sample(projets_technicien, 50), simplify=FALSE)


Utiliser simplify en fonction de la valeur souhaitée en sortie (matrice ou liste).
PY

Eric Wajnberg
Messages : 776
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Re: Boucle "pour"

Messagepar Eric Wajnberg » 11 Avr 2017, 14:16

Il n'y a pas la nécessité d'utiliser l'indice de la boucle (ici i) dans une boucle. On a parfois juste besoin de répéter quelque chose plusieurs fois et c'est tout. En revanche, même si votre boucle et correcte, vous ne faite rien avec l'objet "ech". Du coup, on se sait pas ce que vous n'arrivez pas à faire. Il faut expliquer d'avantage, je pense.

Pour finir, merci d'utiliser les balises de code dans vos messages, ca rendra vos posts plus lisibles.

Cordialement, Eric.

Julia Meyer
Messages : 4
Enregistré le : 09 Avr 2017, 16:01

Re: Boucle "pour"

Messagepar Julia Meyer » 11 Avr 2017, 17:48

Merci pour votre aide!


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité