Habituellement, je me fiche de savoir quand JMP (JSL) fait quelque chose que je ne m'attends pas à ce qu'il fasse, car la plupart du temps, il fonctionne et c'est la seule chose qui m'importe ... mais aujourd'hui, j'ai trouvé quelque chose "d'intéressant" . Si vous utilisez Where() pour filtrer votre analyse, vous vous retrouverez avec une table de données privée qui est liée à votre table de données (avec un nom assez bizarre, dans ce cas "Big Class, where -sex == -F-")
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
gb1 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3)))
),
gb2 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3))),
Where(:sex == "F")
)
)
);
Show(gb1 << Get Data Table);
Show(gb2 << Get Data Table);
/*
dt_private = gb2 << Get Data Table;
dt_private << New Data View;
*/
J'ai donc quelques questions concernant ce comportement:
- Est-ce que cela se produit toujours lorsque j'utilise Where() comme ceci pour filtrer l'analyse (pas seulement dans Graph Builder) ?
- Est-ce documenté quelque part ?
- Y a-t-il plus d'interactions comme celle-ci dans JMP où vous créez des choses cachées que vous pourriez alors rencontrer comme ça (pour moi, cela a causé des problèmes avec l'une de mes fonctions parce que j'ai utilisé << Get Data Table pour obtenir la référence pour la table de données mais s'est trompé, la solution facile était d'ajouter une référence de table à la fonction en tant que paramètre
- Dois-je même faire un filtrage comme celui-ci?