Ciao, sto usando JMP 15 su Mac. Il seguente codice funziona:
dt = current data table();
Current Data Table() << Row Selection(
Select where( (:Stat == "Max"), Current Selection( Extend ))
);
Ma questo no:
dt = current data table();
Current Data Table() << Row Selection(
var = "Max"
Select where( (:Stat == var), Current Selection( Extend ))
);
Qualcuno può spiegare cosa c'è che non va nel secondo?
Sembra che stia succedendo qualcosa di strano (testato con JMP16.0 su Windows 10). Osserva attentamente le parentesi quando usi la selezione della riga
Esempio dall'indice di scripting (funziona bene):
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")
);Aggiunta di variabile prima della selezione della seconda riga e utilizzo (restituisce 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")
);
Spostamento della parentesi dalla fine di Seleziona dove a dopo la selezione corrente (sembra funzionare correttamente, ma questa sintassi sembra sbagliata per la selezione della riga basata sull'indice di scripting):
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"))
);
Quando si utilizza la piattaforma Seleziona dove lo script generato sembra essere:
Data Table("Big Class") << Row Selection(
Select where(:age == 15, Current Selection("Extend")),
Dialog(Edit(Equal(Source Column(:age))), Keep dialog open(1))
);
Selezione quando non si utilizza la selezione riga:
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"));
Se non è necessaria la finestra di dialogo, molto probabilmente utilizzerei sempre << Seleziona dove (senza selezione riga) poiché la sintassi è più semplice e non sono sicuro che la selezione riga porti qualcosa in più nella tabella oltre alla finestra di dialogo.
Non sono sicuro di chi taggare qui da JMP/SAS per dare un'occhiata a questo.
Ok, ho risolto. Questo è quello che mancava:
(:Stat == (myStat))
Quindi, la variabile deve essere racchiusa tra due parentesi!
Nessun cambiamento (grazie comunque per la risposta).
Prova a spostare var = "Max" all'esterno di << Row Selection(). E aggiungi mancante;