La boucle pour les noms de colonne ne fonctionne pas<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour,
Je suis novice en JSL. J'essaie de faire un test de Wilcoxon pour plusieurs colonnes. Ma première colonne est "ID" et la deuxième est "SEX" que j'ai utilisé comme paramètre.
J'ai donc écrit le code suivant pour analyser et exporter les résultats dans un journal:
dt = table de données actuelle ();
nom_colonne = dt << obtenir les noms de colonnes;
pour (i = 3, i <= longueur (noms de colonne), i ++,
ow = ow || "
Une manière(
Y (: Name ("|| column_names || ")),
X (: SEX),
Test de Wilcoxon (1),
Parcelles de terrain (0),
Diamants moyens (0)
) "
)
eval (parse (ow)) << Journal ();
Mais cela ne fonctionne pas et je ne sais pas ce qui ne va pas avec le code.
J'ai également une autre question: "Est-il possible d'exporter uniquement la valeur P dans un journal? J'ai utilisé SendToReport (dispatch ..... ) mais il reste des titres de section dans les résultats. Ce dont j'ai besoin, c'est seulement mon nom de colonne et ma valeur P. C'est possible ?"
Aidez-moi, s'il vous plaît.
Merci d'avance
Re: La boucle pour les noms de colonne ne fonctionne pasCher Dave,
Merci pour votre réponse rapide et détaillée.
Je travaille avec JMP8 et il semble que la structure soit un peu différente. Dans ma version, "NumberColBox (7)" fait référence à la valeur p.
J'apprécie également votre astuce sur la manière de voir la structure arborescente. C'est une aide précieuse.
Bonne chance
Re: La boucle pour les noms de colonne ne fonctionne pasVoici à quoi devrait ressembler la sortie du second script:

Quelle version de JMP utilisez-vous? Je l'ai couru avec succès sur v9 et v10.
Jetez également un coup d'œil au fichier journal pour voir si vous recevez des messages d'erreur.
Les valeurs p sont extraites en référençant la zone d'affichage appropriée dans l'arborescence du rapport à l'aide de la ligne de code suivante:
matPValue = owr [NumberColBox (11)] ;
Le nom de la boîte d’affichage - NumberColBox (11) - est identifié en consultant l’arborescence ... Vous pouvez donc essayer ceci pour vérifier que le nom de la zone d'affichage est correct:
après la ligne:
owr = ow << rapport;
ajouter:
owr << affiche la structure de l'arbre;
ce qui donnera à la sortie quelque chose comme ça:

-Dave
Re: La boucle pour les noms de colonne ne fonctionne pasCher Dave,
Merci beaucoup pour votre aide. Cela m'a vraiment fait gagner du temps.
Cependant, quand j'ai essayé le second script, je n'ai pas eu de réponse, alors j'ai changé la propriété de la table de résultats en "visible" et j'ai découvert que, même si cela créait le bon nombre de lignes correspondant au nombre de colonnes à analyser, aucune donnée n'a été injectée. tableau de résultats.
J'apprécie que vous me donniez un indice sur la façon de le résoudre.
Merci d'avance pour vos précieuses aides.
Re: La boucle pour les noms de colonne ne fonctionne pasEssaye ça:
dt = Open ("$ SAMPLE_DATA / Big Class.jmp");
nom_colonne = dt << obtenir les noms de colonne (numérique, chaîne);
jw = Nouvelle fenêtre ("demo", << journal);
pour (i = 1, i <= NItems (nom_colonne), i ++,
nomcolonne = noms_colonne ;
cmd = Expr (
ow = Oneway (
Y (cName),
X (: SEX),
Test de Wilcoxon (1),
Parcelles de terrain (0),
Diamants moyens (0);
)
owr = ow << rapport;
owr << Contour Box (1) << Close;
pValues = owr [TableBox (3)];
jw << Append (ob = Outline Box (nomColonne));
ob << Append (pValues);
ob << Ajouter (owr);
ow << Fermer la fenêtre;
)
Substitute Into (cmd, Expr (cName), colName);
Eval (cmd);
)
ou si vous voulez juste le nom de la colonne et la valeur p ....
dt = Open ("$ SAMPLE_DATA / Big Class.jmp");
nom_colonne = dt << obtenir les noms de colonne (numérique, chaîne);
results = New Table ("Results", invisible,
Nouvelle colonne ("Nom", caractère),
Nouvelle colonne ("Valeur P", numérique),
Ajouter des lignes (NItems (nom_colonne))
)
pour (i = 1, i <= NItems (nom_colonne), i ++,
nomcolonne = noms_colonne ;
cmd = Expr (
ow = dt << Oneway (
Y (cName),
X (: SEX),
Test de Wilcoxon (1),
Parcelles de terrain (0),
Diamants moyens (0);
)
owr = ow << rapport;
matPValue = owr [NumberColBox (11)];
pValue = matPValue [1];
Colonne (résultats, 1) = colName;
Colonne (résultats, 2) = pValue;
ow << Fermer la fenêtre;
)
Substitute Into (cmd, Expr (cName), colName);
Eval (cmd);
)
résultats << journal;
Fermer (résultats);
-Dave