|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2006 Messages : 90 ![]() |
Bonjour,
J'aurais voulu savoir comment effectuer une boucle de ce type : J'ai le tableau suivant : Code :
J'ai pour cela créé la requête suivante : Code :
j'aimerais donc faire une boucle qui se décrémente, mais je crois que ce n'est pas possible de faire : Code :
do f = &end_&i TO 1 *(&end_&i étant supérieur à 1); |
||||
|
|
00
|
|
|
#2 | ||||
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 138 ![]() |
Si j'ai bien compris ta demande, tu te complique un poil...
récupère d'abord seulement les observations pour lesquelles note1 <10 et trie les par élève et date1 Code :
Code :
|
||||
|
|
00
|
|
|
#3 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2006 Messages : 90 ![]() |
Merci Manoutz pour cette réponse !
Le seul souci est que par exemple si une note de l'élève varie comme suit : Code :
N'hésite pas à me demander des précisions si cette description n'est pas assez précise |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 138 ![]() |
Okay donc si je comprends tu veux la correpondant à la première note<10, s'il y en a une.
dans ce cas une solution est de transposer tes données en premier, de sorte à avoir un dataset de la forme: eleve note date mesure X1 <10 20/03/2006 1 x1 >10 20/07/2007 2 x1 <10 18/09/2008 3 x1 <10 20/03/2009 4 x2 etc... puis tu appliques le même principe pour la programmation Le but est d'avoir en sortie x1 20/03/2006 x2 19/12/2008 etc.. c'est ca? |
|
|
00
|
|
|
#5 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2006 Messages : 90 ![]() |
Justement, en sortie, j'aimerais plutôt avoir :
"x1 <10 18/09/2008 3" et effectivement "x2 19/12/2008"... C'est pour cela que j'avais effectué une proc transpose de telle sorte à avoir : Code :
eleve note date mesure X1 <10 20/03/2006 1 x1 >10 20/07/2007 2 x1 <10 18/09/2008 3 x1 <10 20/03/2009 4 x2 etc... Je ne vois pas trop comment procéder... Là, j'ai mis au point le code suivant : Code :
J'ai du mal à trouver l'erreur :s |
||||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 138 ![]() |
sous la forme
X1 <10 20/03/2006 1 x1 >10 20/07/2007 2 x1 <10 18/09/2008 3 x1 <10 20/03/2009 4 x2 etc... tu as juste à appliquer mon code (et appliquer les bons noms de variable) et normalement c'est plié |
|
|
00
|
|
|
#7 | ||||||||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2006 Messages : 90 ![]() |
Mais si je reprends ton code sur la base organisée comme suit :
Code :
Code :
Code :
Code :
"X1 <10 20/03/2006" et non pas "x1 <10 18/09/2008 3" comme nous aurions dû... :s A moins que je n'ai pas compris une subtilité dans le code... Désolé d'insister. |
||||||||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 138 ![]() |
ok donc c'est pas la première observation pour une note <10 que tu veux. Si c'est la dernière ligne, remplace le first par un last. Si c'est encore une autre situation, merci de me réexpliquer
|
|
|
00
|
|
|
#9 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2006 Messages : 90 ![]() |
En fait, pour reprendre l'exemple de l'élève numéro 1:
Si l'élève a les note ssuivantes, aux dates suivantes : Code :
En fait, pour être plus précis, ce que je veux, cest la date à laquelle l'élève repasse pour la dernière fois en dessous de la moyenne (je ne considère rien si l'élève reste en dessous de la moyenne). |
||
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2006 Messages : 90 ![]() |
Merci pour ton aide infiniment !
Je viens de trouver les petites coquilles dans mon programme qui fonctionne bien désormais Merci pour tout, A bientôt ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com