Scripting JSL : puis-je automatiser la commande SendToByGroup ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />La plupart des plateformes JMP disposent d'une option « Par » qui effectue l'analyse séparément pour chaque niveau d'une variable. Je suis particulièrement intéressé par les plateformes Distribution et Fit Model (GLM).
L'index des scripts (accessible via le menu d'aide) donne cet exemple :
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Distribution(
By( :Sex ),
SendToByGroup(
{:sex == "F"},
Continuous Distribution(
Column( :weight ),
Normal Quantile Plot( 1 )
)
),
SendToByGroup(
{:sex == "M"},
Continuous Distribution(
Column( :weight )
)
)
);
Dans l'exemple ci-dessus, et dans les scripts que je peux générer via la plateforme Fit Model, les niveaux de la variable sont spécifiés explicitement.
Un script peut-il automatiser l'exécution quels que soient les niveaux de l'ensemble de données ? Par exemple, je voudrais ne pas spécifier les niveaux manuellement, car je dois répéter la même analyse sur différents ensembles de données, chacun ayant des niveaux différents. Pensez à une analyse par ville, avec un ensemble de données contenant NY et Los Angeles, un autre ayant Londres et Paris, etc.
Merci!
Re : Scripting JSL : puis-je automatiser la commande SendToByGroup ?Merci! J'étais confus car si j'exécute l'analyse manuellement, puis que je copie le script, le script résultant spécifie explicitement les niveaux, alors qu'en fait cela n'est pas obligatoire.
Re : Scripting JSL : puis-je automatiser la commande SendToByGroup ?NomsDefaultToHere ( 1 ) ;
// Créer un tableau avec une variable 'By' avec un nombre aléatoire de niveaux (entre 2 et 5)
n° = 100 ;
NC = 3 ;
dt = NouveauTableau ( "Certaines données" ) ;
Pour ( c = 1 , c <= NC , c ++,
dt << NouvelleColonne ( "Col" || Carboniser ( c ) , Numérique , Continu , Formule ( AléatoireNormal ())) ;
) ;
dt << Ajouter des lignes ( n° ) ;
cols = dt << Obtenir les noms de colonnes ( "Chaîne" ) ;
dt << NouvelleColonne ( "Par" , Numérique , Continu , Formule ( Entier aléatoire ( 1 , Entier aléatoire ( 2 , 5 )))) ;
// Faire la distribution
dt << Distribution ( Colonnes ( Évaluer ( cols )) , Par ( : Par )) ;