Fonctions col et états de ligneSelon les notes de publication de la version 15 de JMP :
Les fonctions Col honorent les lignes exclues via la fonction Excluded(Row State()).
Col Maximum( :height, :sex, Exclus( Row State() ) );
Cependant, cette syntaxe ne semble pas fonctionner.Quelqu'un peut-il suggérer la syntaxe correcte?
ScriptRe : Fonctions Col et états de ligneJe pense que c'est le même concept que celui derrière le binning. Vous mappez une valeur à une autre pour chaque observation, dans ce cas, une valeur de groupe. C'est peut-être une poubelle. Il pourrait s'agir d'une mesure de tendance centrale.
Re : Fonctions Col et états de ligneD'accord merci.Je n'arrive pas vraiment à comprendre l'idée de générer une statistique de colonne pour chaque ligne du tableau, mais je suppose qu'il doit y avoir des cas d'utilisation.Je m'en tiendrai à l'utilisation d'une fonction définie par l'utilisateur pour calculer les statistiques de colonne tout en tenant compte des exclusions de lignes.
Re : Fonctions Col et états de ligneSelon le Documentation , lorsqu'une variable By est spécifiée, la fonction doit être utilisée dans une formule de colonne ou For Each Row() :
(Facultatif) Une variable By à calculer statistique s sur des groupes de lignes. Utilisez la variable By dans un col umn formule ou dans un Pour chaque ligne() fonction.
En examinant certains des exemples précédents dans cet article, je conviens qu'il semble traiter les valeurs exclues comme leur propre niveau By.
Re : Fonctions Col et états de ligneIl semble qu'il soit utilisé avec une formule de colonne dans laquelle la fonction Row() est définie lors de son évaluation.
Re : Fonctions Col et états de ligneSur un seul ordinateur, cela fonctionne :

Et sur l'autre ça échoue :

Re : Fonctions Col et états de ligneTravailler avec Big Class (bien sûr):
colmaximum(:height,excluded(rowstate()))
Cela fonctionne.Mais sur un ordinateur mais pas sur un autre.Les deux exécutant 15.1.0.
Maintenant, je suis totalement confus!
Captures d'écran sur le prochain post...
Re : Fonctions Col et états de ligneIntéressant. Une version préliminaire de JMP 16 semble faire les choses correctement pour r=1 et r=2, mais pas par la suite :
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
mw = J(NRow(dt), 2, .);
for(r=1, r<=NRow(dt), r++,
Row() = r;
RowState(Row()) = ExcludedState(1);
mw[r,1] = ColMean(:weight, Excluded(RowState(Row())));
mw[r,2] = ColMean(:weight, Excluded());
RowState(Row()) = ExcludedState(0);
);
AsTable(mw);
dt << Distribution(
Continuous Distribution(
Column( :weight ),
Quantiles( 0 ),
Histogram( 0 ),
Outlier Box Plot( 0 )
),
Local Data Filter(
Add Filter(
columns( Transform Column( "Row", Nominal, Formula( Row() ) ) ),
Where( Transform Column( "Row", Nominal, Formula( Row() ) ) == 1 ),
Display(
Transform Column( "Row", Nominal, Formula( Row() ) ),
N Items( 15 ),
Find( Set Text( "" ) )
)
)
)
);Re : Fonctions Col et états de ligneDavid,
Très perturbant. Je pense que c'est une question pour notre amie Wendy.Re : Fonctions Col et états de ligneJe peux coder une solution - ma question était spécifiquement de savoir si la version 15 permettait de le faire uniquement en utilisant les fonctions de colonne - c'est l'impression que j'ai eue des notes de version.
Re : Fonctions Col et états de lignePeut-être que le respect signifie dans ce cas que l'exclu est juste un byVar supplémentaire dans les formules de statistiques de colonne ?
Si vous voulez la valeur maximale de la colonne sans valeurs exclues, pourriez-vous utiliser Summarize au lieu de Col Maximum ? Il semble ignorer les lignes exclues.
Names Default To Here(1);
dt =New Table("ExcludeColMax",
Add Rows(6),
Compress File When Saved(1),
New Column("A",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 10, 100, 2, 20, 200]),
Set Display Width(46)
),
New Column("B",
Character,
"Nominal",
Set Values({"A", "A", "A", "B", "B", "B"})
),
New Column("C",
Numeric,
"Continuous",
Format("Best", 12),
Formula(Col Maximum(:A, :B, Excluded())),
Set Display Width(65)
),
Set Row States([0, 0, 6, 6, 0, 6])
);
Write("Looping col max:");
For Each Row(
Show(Col Maximum(:A, :B, Excluded()))
);
Write("\!N\!NOnly col max:");
Show(Col Maximum(:A, :B, Excluded()));
Write("\!N\!NSummarize:");
Summarize(dt, exg = By(:B), exm = Max(:A));
Show(Eval List({exg, exm}));
Show(Max(exm));Re : Fonctions Col et états de ligneJ'ai testé avec la v15.2 et le problème est le même.Notez que le cas d'utilisation utilise la fonction dans un script, pas dans une formule de colonne (je ne sais pas pourquoi je voudrais une statistique de colonne dans une ligne).
Re : Fonctions Col et états de ligneJ'ajouterai cet exemple très simple ici si quelqu'un d'autre vient:

Names Default To Here(1);
New Table("ExcludeColMax",
Add Rows(6),
Compress File When Saved(1),
New Column("A",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 10, 100, 2, 20, 200]),
Set Display Width(46)
),
New Column("B",
Character,
"Nominal",
Set Values({"A", "A", "A", "B", "B", "B"})
),
New Column("C",
Numeric,
"Continuous",
Format("Best", 12),
Formula(Col Maximum(:A, :B, Excluded())),
Set Display Width(65)
),
Set Row States([0, 0, 6, 6, 6, 0])
);Re : Fonctions Col et états de ligneMerci de me le faire savoir.Cela ne fonctionne pas avec 15.1 - je vais essayer de faire une comparaison avec 15.2.
Re : Fonctions Col et états de ligneJ'ai rapidement testé et j'ai semblé que l'utilisation de Exclus() semblait fonctionner (j'utilise 15.2.1).