Bonjour, j'utilise JMP 15 sur Mac. Le code suivant fonctionne :
dt = current data table();
Current Data Table() << Row Selection(
Select where( (:Stat == "Max"), Current Selection( Extend ))
);
Mais ce n'est pas le cas :
dt = current data table();
Current Data Table() << Row Selection(
var = "Max"
Select where( (:Stat == var), Current Selection( Extend ))
);
Quelqu'un peut-il expliquer ce qui ne va pas avec le deuxième ?
On dirait qu'il se passe quelque chose d'un peu bizarre (testé avec JMP16.0 sur Windows 10). Regardez attentivement les parenthèses lorsque vous utilisez la sélection de ligne
Exemple tiré de l'index de script (fonctionne bien) :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Row Selection(Select where(:age < 15));
Wait(2);
dt << Row Selection(
Select where(:age == 15),
current selection("extend")
);Ajout d'une variable avant la sélection de la deuxième ligne et utilisation de celle-ci (renvoie Scriptable[]) :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Row Selection(Select where(:age < 15));
Wait(2);
ageVar = 15;
dt << Row Selection(
Select where(:age == ageVar),
current selection("extend")
);
Déplacer le crochet de la fin de Select Where vers après la sélection actuelle (semble fonctionner correctement, mais cette syntaxe semble incorrecte pour la sélection de lignes basée sur l'index de script) :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Row Selection(Select where(:age < 15));
Wait(2);
ageVar = 15;
dt << Row Selection(
Select where(:age == ageVar,
current selection("extend"))
);
Lors de l'utilisation de la plateforme Select Where, le script généré semble être :
Data Table("Big Class") << Row Selection(
Select where(:age == 15, Current Selection("Extend")),
Dialog(Edit(Equal(Source Column(:age))), Keep dialog open(1))
);
Sélection lorsque vous n'utilisez pas la sélection de ligne :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Row Selection(Select where(:age < 15));
Wait(2);
ageVar = 15;
dt << Select where(:age == ageVar, current selection("extend"));
S'il n'y a pas besoin de dialogue, j'utiliserais probablement toujours << Select Where (sans sélection de ligne) car la syntaxe est plus simple et je ne sais pas si la sélection de ligne apporte quelque chose de plus au tableau en plus de la boîte de dialogue.
Je ne sais pas qui identifier ici de JMP/SAS pour examiner cela.
Ok, je l'ai résolu. Voici ce qui manquait :
(:Stat == (myStat))
La variable doit donc être entre deux parenthèses !
Aucun changement (merci pour votre réponse cependant).
Essayez de déplacer var = "Max" en dehors de << Row Selection(). Et ajoutez manquant ;