Je résume souvent une colonne par une combinaison d'autres colonnes catégoriques utilisant une colonne de formule. Par exemple, dans les données de l'échantillon de détergent, je souhaiterais peut-être connaître le nombre moyen pour chaque combinaison de douceur et de température. Voici trois méthodes pour ce faire. La méthode que j’utilise dépend de la taille du tableau de données et de mon public. Y a-t-il un moyen plus facile?
Je crains un complément contenant une fonction personnalisée "Col Mean by Multiple Columns ()" en raison de problèmes de portabilité.
Tabluate
Créez des statistiques récapitulatives dans une nouvelle table à l'aide de la tabulation, puis joignez les résultats à la table de données d'origine.
Pro: Facile à faire des statistiques sommaires très complexes.
Contre: Pas en direct, nécessité d'actualiser les données si une colonne référencée change au cours d'une analyse, aucun moyen pour les utilisateurs de suivre la source des données.
Formule de Binning
Créez une formule de tri, puis utilisez le deuxième argument de la fonction Col Mean () pour référencer ce bac.
Pro: facile à configurer et relativement facile à suivre pour les utilisateurs.
Con: Crée des colonnes supplémentaires qui encombrent la table de données et ne sont utilisables que pour cette formule, en particulier lors de la création de nombreuses colonnes récapitulatives.
dt = Open( "$sample_data/Detergent.jmp" );
//binning formula
dt << New Column(
"Bin by Temp and Softness",
Character,
"Nominal",
Formula( :softness || "-" || :temperature )
);
//summary statistic
dt << New Column(
"Mean Count by Temp and Softness Binned",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Col Mean( :count, :Bin by Temp and Softness) )
);
Identifier les bacs et calculer les statistiques récapitulatives à l'aide de JSL dans une formule
Identifiez les lignes similaires dans la table de données puis calculez la statistique récapitulative sur ces données. Je suspecte que JMP ne mette pas en cache les résultats avec cette méthode, de sorte que la table entière est réévaluée pour chaque ligne. Dans tous les cas, il est lent pour les tables de données volumineuses.
Pro: des tonnes de flexibilité
Inconvénients: calculs lents, très difficiles à suivre pour les utilisateurs.
//summary statistic by bin
dt << New Column(
"Mean Count by Temp and Softness Direct",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
matches = Function( {a, b},
out = {};
For( i = 1, i <= N Items( a ), i++,
found = "no";
For( j = 1, j <= N Items( b ), j++,
If( a[i] == b[j],
found = "yes"
)
);
If( found == "yes",
out = Insert( out, a[i] )
);
);
out;
);
soft = Loc( :softness << get values(), :softness );
temp = Loc( :temperature << get values(), :temperature );
Mean( (:count << get values())[matches( soft, temp )] );
)
);Super, je suis content que ça aide! J'aurais dû mentionner que dans les versions récentes de JMP (je pense depuis JMP 11), vous pouvez avoir plusieurs paramètres de colonne directement dans ColMean (). Donc, plutôt que de concaténer, vous pourriez avoir:
Col Mean( :count, :softness, :temperature )
Je suis tellement habitué à concaténer que je le fais encore. Les vieilles habitudes ont la vie dure 
De plus, dans JMP 12 et sur, avec les formules instantanées dans la table de données, vous pouvez sélectionner ces colonnes dans la table, cliquer avec le bouton droit de la souris sur l'un de leurs en-têtes, sélectionner Nouvelle colonne de formule> Grouper par.

Sélectionnez ensuite la colonne de nombre, cliquez avec le bouton droit de la souris sur l'en-tête, sélectionnez Nouvelle colonne de formule> Agréger> Moyenne.

Cela va concevoir la formule pour vous automatiquement; très convivial pour vos nouveaux utilisateurs.
C'est parfait, et si évident une fois que vous le signalez.
Merci!
salut @ih ,
Je me retrouve à faire cette chose assez souvent. Une méthode qui me convient consiste à utiliser une formule de colonne telle que Col Mean (: column, byvariable). Pour le second paramètre, j'utilise directement une concaténation des deux colonnes catégoriques (au lieu de créer des colonnes supplémentaires dans le tableau). Voici un exemple de détergent:
Col Mean( :count, :softness || :temperature )
Est-ce que cela fait ce dont vous avez besoin ou y a-t-il autre chose que vous cherchez?
@julien