Comment conditionner une boucle for pour qu'elle ne fonctionne que pour un ensemble particulier de lignesSalut,
J'essaie de manipuler un tableau de données avec une formule, mais je veux seulement qu'il soit lu pour quelques lignes.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
r = Current Data Table() << Get rows where( :Make == "Mazda");
For( i = r[1], i <= r, i++,
:HeadIC[i] = :HeadIC[i]/2
);
Show(r);
Comment puis-je faire en sorte qu'il n'itère que pour les lignes sélectionnées ?
Études de marché et de consommationPersonnalisation de masseRe : Comment puis-je conditionner une boucle for pour qu'elle ne fonctionne que pour un ensemble particulier de lignesComme ça?
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
For Each Row( If ( :Make == "Mazda", :HeadIC = :HeadIC/2 ));
Re : Comment puis-je conditionner une boucle for pour qu'elle ne fonctionne que pour un ensemble particulier de lignesDans votre exemple, puisque vous avez créé le vecteur avec les numéros de ligne, vous pouvez également utiliser "For Each()".Ce serait plus rapide, en particulier pour une table de données plus grande (avec plusieurs lignes).
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
r = Current Data Table() << Get rows where( :Make == "Mazda");
for each({cr,ii}, r,
:headic[cr] = :headic[cr]/2
);
Re : Comment puis-je conditionner une boucle for pour qu'elle ne fonctionne que pour un ensemble particulier de lignesMerci de me démystifier ceci :
for each({cr,ii}, r,
:headic[cr] = :headic[cr]/2
);
// specifically, where do {cr,ii} come from and what do they do?
Pas un codeur. Impossible de trouver cela dans l'index des scripts. Je n'ai pas encore consulté le Guide de script.
Re : Comment puis-je conditionner une boucle for pour qu'elle ne fonctionne que pour un ensemble particulier de lignesSalut, je ne sais pas comment utiliser cette fonction, je ne la trouve pas dans l'index de script, pouvez-vous montrer un exemple ? Lorsque j'essaie d'exécuter le code que vous avez donné, des erreurs apparaissent.
Re : Comment puis-je conditionner une boucle for pour qu'elle ne fonctionne que pour un ensemble particulier de lignesFor Each() est une nouvelle fonction introduite dans JMP16, donc si vous utilisez une ancienne version de JMP, vous ne la trouverez pas dans l'index de script (et cela donnera une erreur). Vous pouvez le convertir en boucle for si vous voulez :
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
r = Current Data Table() << Get rows where( :Make == "Mazda");
/*For Each({cr,ii}, r,
:headic[cr] = :headic[cr]/2
);*/
For(ii = 1, ii <= N Items(r), ii++,
cr = r[ii];
:headic[cr] = :headic[cr]/2;
);
Pour chaque (noms, conteneur, locaux, corps) (aide jmp16)
Re : Comment puis-je conditionner une boucle for pour qu'elle ne fonctionne que pour un ensemble particulier de lignesC'est étrange. Les deux fonctionnent très bien pour moi. Essayez à nouveau de publier le code complet de chaque solution dans une fenêtre de script distincte. Fermez tout le reste. Exécutez d'abord le code à partir d'une fenêtre de script, en confirmant que le code fait ce qu'il est censé faire. Ensuite, refermez tout sauf l'autre fenêtre de script contenant le code qu'il vous reste à tester.