Re : L'utilisation de Where() pour filtrer l'analyse crée une nouvelle table de données privées liéesLes plates-formes ont une gestion commune pour Where() et By(), qui créent toutes deux des tables de sous-ensemble pour implémenter la fonctionnalité.Je ne sais pas s'il existe une documentation à ce niveau de détail sur la mise en œuvre.
Le sous-ensemble peut fournir une distinction utile par rapport à la manipulation d'état de ligne via des filtres.Cet exemple montre que lorsque vous ajustez un modèle à des sous-ensembles, JMP évite d'appliquer ce modèle aux lignes qui ne se trouvent pas dans le sous-ensemble.Si vous faites la même chose avec un filtre, le modèle est appliqué à toutes les lignes.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate( Y( :weight ), X( :height ), Fit Line( {Line Color( {212, 73, 88} )} ), By(:sex) );
biv[1] << (Curve[1] << Save Predicteds);
biv2 = dt << Bivariate(
Y( :weight ),
X( :height ),
Fit Line( {Line Color( {212, 73, 88} )} ),
Local Data Filter(
Auto clear( 1 ),
Grouped by AND( 1 ),
Show Histograms and Bars( 0 ),
Add Filter( columns( :sex ), Where( :sex == "F" ) )
)
);
biv2 << (Curve[1] << Save Predicteds);
L'utilisation de ce type de sous-ensemble peut dépendre des spécificités de l'analyse que vous effectuez.
-Dan
L'utilisation de Where() pour filtrer l'analyse crée une nouvelle table de données privées liéesHabituellement, 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 celui-ci 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 de la table de données mais je me suis 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?
Modifier:
Ajout de quelques pages d'aide qui sont au moins partiellement liées à cela
Automatisation et script