Résumer la fonctionJ'utilise assez souvent la fonction de résumé dans le cadre de mon travail.Souvent, je veux une distribution de fréquence d'une variable. Pour ce faire, j'utilise Summarize( ex=By(dt:var), exCnt = Count(dt:var)). ex contient les niveaux de la variable et exCnt contient la distribution de fréquence. Cela fonctionne bien lorsque la variable est numérique, mais pas lorsque la variable est une chaîne. Le travail autour que j'utilise consiste à créer une variable numérique factice sequence(1, N Rows(dt), 1) et à exécuter cette syntaxe, Summarize( ex=By(dt:var), exCnt = Count(dt:dummy)).
Cela fonctionne bien, mais je me demandais s'il y avait un moyen d'accomplir ce dont j'avais besoin sans la colonne factice supplémentaire ?
Sincèrement,
Mat
Automatisation et scriptFusion et nettoyage des donnéesRe : Résumer la fonctionJ'utiliserais très probablement une table récapitulative privée, obtiendrais des valeurs, puis la fermerais.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt_summary = dt << Summary(Group(:sex), Freq("None"), Weight("None"), Link to original data table(0), private);
ex = Column(dt_summary, 1) << get values;
exCnt = Column(dt_summary, 2) << get values;
Close(dt_summary, no save);
Show(ex, exCnt);Re : Résumer la fonction@jthi , Merci pour votre réponse rapide. C'est ce que je faisais avant d'insérer la colonne factice. Ce n'est pas idéal, mais aussi pas mal.
Re : Résumer la fonctionVous pouvez également ajouter directement une colonne de comptage à la table que vous avez. Je pense que l'obtention des valeurs uniques avec le tableau associatif devrait fonctionner
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
new_col = dt << New Column("Counts", Numeric, Continuous, << Set Each Value(
Col Number(:name, :name)
));
aa = Associative Array(:name << get values, :Counts << get values);
//dt << Delete Columns(new_col);
show(aa);
mais selon les données, cela pourrait être plus lent que d'utiliser simplement le tableau récapitulatif.
Vous pouvez également créer un élément de liste de souhaits à ce sujet et fournir une liste de statistiques qui devraient être fournies pour les colonnes de caractères (premier, dernier, mode, nombre... ?) si cela était utile (et le serait très probablement). Il y en a un qui a été maintenant archivé , mais la demande n'est pas si bien structurée Fonction d'agrégation Summerize/Summary pour les données de caractères. Concat Charcter Vector dans un scalaire (par) mais vous pouvez également commenter vos idées à ce sujet.
Quand j'ai fait le script Analyser les colonnes J'ai utilisé au moins le tableau récapitulatif, la fonction Résumer, la plate-forme de distribution et les opérations matricielles pour calculer les différentes statistiques en fonction de celle qui était la plus rapide (je pense que je n'ai pas essayé Query()).
Re : Résumer la fonctionJ'ai ajouté quelques idées et posté un nouveau souhait :
Récapitulatif et Tabulation : ajout d'une option d'agrégation pour les colonnes de caractères
Croisons les doigts pour qu'il soit accepté 
avec une telle option, Tabuler deviendra extrêmement utile !
Gros avantage par rapport à une colonne supplémentaire : la colonne est statique. Vous devez définir le niveau d'agrégation - et ensuite c'est fixé.
Une agrégation de caractères qui vit dans un tableau récapitulatif - ou dans Tabuler est beaucoup plus dynamique.
Selon la structure supplémentaire, cela peut produire des résultats complètement différents.
S'il y a un jour par ligne, il sera agrégé par jour, s'il s'agit d'un mois, il sera agrégé par mois.