Itérer sur les éléments du rapportBonjour, je suis nouveau dans JMP mais je le trouve très utile et pratique, jusqu'à présent je l'apprécie beaucoup. J'apprends JSL parce que j'ai besoin d'automatiser une partie de l'analyse pour mes coéquipiers et pour plus d'efficacité. Je commence par quelque chose de simple mais j'ai besoin d'aide pour avancer.
J'ai besoin de personnaliser les résultats de la plateforme de distribution pour effectuer un test de normalité sur plusieurs colonnes d'un tableau, afin de le répéter aussi souvent que moi ou mes collègues en avons besoin. J'ai réussi à écrire un script simple qui y parvient de manière simple. Cependant, j'ai des problèmes sur la façon de modifier des éléments particuliers du rapport lorsqu'une condition est remplie.
Voici le script qui renvoie les valeurs du test Shapiro-Wilk :
// Select variables to analyze
Names Default to Here( 1 );
dt = Current Data Table();
dialog = New Window( "Select Columns", << Modal,
Panel Box( "Column Selection",
Lineup Box( N Col( 1 ),
Text Box( "Select columns for distribution" ),
y col list = Col List Box( All )
)
),
H List Box(
Button Box( "OK",
y col = y col list << Get Selected;
),
Button Box( "Cancel" )
)
);
If( dialog["Button"] == -1,
Throw( "User cancelled" )
);
// Create distribution
dist = dt << Distribution(Columns(evalList(y col)),Histograms Only);
// Add parameters
dist << Normal Quantile Plot( 1 );
dist << Fit Distribution(Normal(Goodness of Fit(1)));
Comment puis-je faire en sorte que JMP affiche automatiquement des statistiques récapitulatives personnalisées (y compris l'asymétrie et l'aplatissement) lorsque la valeur P (Prob < W) est < 0,05.
Lorsque j'essaie de modifier quelque chose dans le rapport, par exemple, supprimez les estimations des paramètres
distr["Parameter Estimates"] << Delete;
Il le fait uniquement pour le premier élément du rapport.
J'apprécierais toute aide sur la façon de manipuler les éléments du rapport, en général, par exemple en supprimant toutes les estimations de paramètres, et en particulier telles que P < 0,05.
Merci!
Personnalisation de masseRe : Itérer sur les éléments du rapportMerci!!!Re : Itérer sur les éléments du rapportLa H List Box() n'est qu'un conteneur dans la fenêtre du rapport.Les fenêtres de rapport JMP peuvent être considérées comme un ensemble de conteneurs d'affichage imbriqués et d'éléments d'affichage dans ces conteneurs.Si vous souhaitez voir l'arborescence d'affichage avec les conteneurs d'affichage, cliquez avec le bouton droit sur le triangle gris à côté d'une zone de plan et sélectionnez Modifier > Afficher l'arborescence.

Dans ce cas, je ne pense pas que vous puissiez faire l'inverse, comme vous le décrivez, car l'un des résultats de l'exécution d'une commande de script de plateforme d'analyse est qu'elle crée la fenêtre d'affichage et le message <
Si vous ne placez pas dist dans l'arborescence d'affichage comme je l'ai fait dans le script, cela créera simplement une nouvelle fenêtre avec cette analyse de distribution unique, et il y aura une fenêtre séparée avec chaque analyse de distribution (pour chaque colonne sélectionnée).
Re : Itérer sur les éléments du rapportMerci beaucoup, il remplit sa fonction et m'apprend aussi beaucoup. C'est d'une grande aide.
J'aimerais vous demander quelque chose pour m'aider à comprendre, j'espère que cela ne sera pas trop un problème pour vous : j'ai remarqué que la première étape que vous avez faite dans la boucle for était d'ajouter la distribution à la variable hb et ensuite vous ajoutez tous les détails (qq-plot, test SW, etc.). Selon ma logique et mon expérience en programmation, j'ajoutais généralement les détails en premier, puis j'ajoutais tout au bon endroit (c'est exactement là que j'avais du mal en fait). Ma question est, comment ça marche le hb créé par la fonction Nouvelle Fenêtre ? S'agit-il d'une sorte de page blanche dans laquelle il ajoutera toutes les commandes suivantes et ajustera la taille de la nouvelle fenêtre en conséquence ? Est-ce que cela ajoutera tout ce qui a à voir avec la variable dist ? Et comment la nouvelle variable créée avec distr = Report( dist ) influence-t-elle ce qui est ajouté ?
À propos de votre commentaire sur le test d'ajustement, merci beaucoup, c'est en fait la raison pour laquelle je crée le script. Je viens de commencer un nouveau travail il y a un mois et jusqu'à présent, mes coéquipiers ont utilisé UNIQUEMENT la valeur p du test de Shapiro-Wilk pour accepter ou rejeter la distribution normale. J'essaie de leur fournir plus d'outils pour comprendre ou évaluer si les données suivent ou non une distribution normale, et pourquoi.
Re : Itérer sur les éléments du rapportLorsque vous utilisez Distribution() avec une liste de colonnes, la fenêtre du rapport contient le résultat de nombreuses analyses de distribution « indépendantes ».Chacune de ces analyses est un objet distinct.L'interaction avec ces objets peut être différente de l'interaction avec la couche de rapport dans la fenêtre du rapport. Lorsque vous le faites
dist << Normal Quantile Plot(1);
ce message est diffusé à tous les objets de distribution affichés dans la fenêtre de rapport.Mais quand tu le fais
distr=Report(dist);
distr["Parameter Estimates"] << Delete;
JMP accède à la première instance de l'objet de couche de rapport qui peut être référencé à l'aide de la chaîne "Parameter Estimates", qui dans ce cas est la zone de contour sous les résultats normaux ajustés.Pour faire ce que vous voulez faire, vous devrez parcourir chaque partie du rapport, obtenir le résultat du test Shapiro-Wilk à partir de la couche de rapport, puis décider de supprimer des parties du rapport de sortie.
Je pense que dans votre cas, il serait plus facile de répéter l'analyse de distribution pour chaque colonne une par une, en ajoutant les résultats à une nouvelle fenêtre de rapport.Voici un exemple de code qui montre comment procéder
// Select variables to analyze
Names Default To Here( 1 );
dt = Current Data Table();
dialog = New Window( "Select Columns",
<<MODAL></MODAL>