Fonctions supplémentaires pour le tableau récapitulatif via JSLJ'aimerais savoir comment obtenir des tableaux récapitulatifs mais avec des statistiques supplémentaires.
Par exemple, Mode() est une fonction que l'on peut utiliser dans une formule, mais cela ne fonctionne pas :
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Summary( Group( :Age ),
subgroup( :sex ),
Mode( :Height )); // Mode isntead of meanJe voudrais aussi résumer le tableau en obtenant le dernier ou le premier numéro du groupe.
Tableau de donnéesScriptRe: Fonctions supplémentaires pour le tableau récapitulatif via JSLFWIW (et si vous connaissez un peu JSL), vous pouvez faire ce genre de chose :
Names Default To Here( 1 );
// Sample data
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Invisible Distribution with 'By' group(s)
dist = dt << Distribution(Continuous Distribution(Column( :height ),Customize Summary Statistics(Mode(1))), By(:age, :sex), Invisible);
// Get the Summary Stats
dt2 = Report(dist[1])[TableBox(2)] << makeCombinedDataTable;
Report(dist[1]) << closeWindow;
// Retain only the Mode
dt3 = dt2 << Subset(Rows(dt2 << getRowsWhere(:Column 1 == "Mode")));
dt3 << setName("Mode Values");
Column(dt3, "Column 1") << setName("Statistic");
Column(dt3, "Column 2") << setName("Value");
Close(dt2, NoSave);
Je considérerais également le Liste de souhaits JMP .
Re: Fonctions supplémentaires pour le tableau récapitulatif via JSLsalut @FN ,
il doit y avoir plusieurs façons d'obtenir ce que vous demandez même si le mode n'est pas une option dans le résumé du tableau. Vous pouvez demander le Mode dans le tableau des statistiques récapitulatives supplémentaires dans la plate-forme de distribution manuellement ou en cliquant sur comme @ian_jmp suggère. Sinon, essayez d'utiliser le complément de brady_brady :
Extended-Summary-Statistics-Add-in-for-JMP qui se réfère au mode du menu.
Sinon, essayez le script suivant :
Names Default To Here( 1 );
// Open Data Table: Big Class.jmp
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// get frequencies for modes
dt2 = dt << Summary(
Group( :Age, :sex, :height ),
Link to original data table( 0 )
);
// delete all rows that are not modes
dt2 << select where( Or( :N Rows != Col Max( :N Rows, :age, :sex ), :N Rows == 1 ) );
dt2 << delete rows;
// indicate first and last values per group - Not min and max unless table is first sorted!!!
dt << New Column( "id age", Numeric, "Continuous", Format( "Best", 12 ), Formula( Sum( :age[Index( 1, Row() )] == :age ) ), eval formula, );
dt:id age << delete formula;
// remove all rows that are not first or last
dt << select where( And( :id age != Col Max( :id age, :age ), :id age != 1 ) );
dt << delete rows;
// create one table with all data and sort it
dt3 = dt << concatenate( dt2, Create source column );
dt3 << New Column( "Value",
Character,
"Ordinal",
Formula( If( :id age == 1, "First", :id age > 1, "Last", :N Rows > 1, "Mode" ) ),
Set Property( "Value Order", {Custom Order( {"First", "Mode", "Last"} ), Common Order( 0 )} ),
);
dt3 << sort( By( :age, :sex, :Value ), Order( Ascending ), replace table );
Veuillez noter que dans le cas de la grande classe, tous les groupes n'ont pas de mode clair. mon approche était de l'enlever la fréquence la plus élevée était égale à 1.
s'il vous plaît laissez-nous savoir si cela fonctionne ou ce qui doit être amélioré.
Ron
Re: Fonctions supplémentaires pour le tableau récapitulatif via JSLBelle astuce en utilisant la plate-forme de distribution comme moyen de les obtenir.
J'ai ajouté la demande ici.Extension des fonctions du tableau récapitulatif à toute fonction définie (par exemple, mode, kurt, skew, etc.)
Re : Fonctions supplémentaires pour le tableau récapitulatif via JSLJe testais cette approche et ce n'est pas faisable, j'en ai peur.
JMP met trop de temps à utiliser les distributions d'affichage lors du regroupement de nombreux éléments dans un grand tableau (un demi-million de lignes et des centaines de colonnes).
A l'inverse, les fonctions par défaut du tableau récapitulatif sont calculées très rapidement.