variable Y dynamique pour l'analyse à sens uniqueSalut tout le monde,
J'essaie de scripter une variable Y dynamique pour une analyse à sens unique, puis de sortir la moyenne dans un tableau combiné. Est-ce une bonne façon de procéder ?
dt = Data Table ("Analysis");
ColNamesList = d1 << get column names (string );
For( i = N Items( ColNamesList ), i >= 1, i--,
OW = (dt << Oneway( Y( Column(ColNamesList) ),
X(:SITE),
Mean ( 1 ),
Automatic Recalc( 0 )
)) << Report;
);
dtCombined = Report( OW[1] )[Table Box( 1 )] << Make Combined Data Table;Merci d'avance !
AnalytiqueTableau de donnéesScriptRe : variable Y dynamique pour l'analyse à sens uniqueExécutez-le : fonctionne-t-il pour votre table ?
Si oui, c'est une façon correcte de le faire!
Si ce n'est pas le cas, faites-nous savoir où vous rencontrez des problèmes ?
Re : variable Y dynamique pour l'analyse à sens uniqueDésolé, j'ai accidentellement cliqué sur le bouton de solution.
Le script n'a généré aucune erreur. Mais, il n'y avait pas non plus de graphique considéré comme une sortie.
Le journal des scripts n'affiche que les scripts.
Re : variable Y dynamique pour l'analyse à sens uniqueCher @XiangCD_MP_User , j'ai eu plusieurs problèmes avec votre script. Si j'ai compris votre tâche, il s'agit d'effectuer une analyse à sens unique pour chaque colonne continue de la table de données par : site et d'enregistrer la table de données avec la moyenne.
Si oui, je procéderais comme suit :
Alternativement, il existe d'autres possibilités, par exemple, mettre tout ensemble dans une seule déclaration "Fit Group". La meilleure méthode dépend de vos compétences en matière de script et de l'environnement exact dans lequel il doit s'exécuter.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// dt = Data Table ("Analysis");
OW_lst = {};
ColNamesList = dt << get column names( string, "Continuous" );
// When using single report windows, you would need to collect the result table from each of them
/*
For( i = N Items( ColNamesList ), i >= 1, i--,
Insert Into( OW_lst, dt << Oneway( Y( Column( ColNamesList[i] ) ), X( :sex ), Means( 1 ), Automatic Recalc( 0 ) ) )
);
*/
// Generate new report window to collect all analyses
nw = New Window( "Oneway Collection",
hlb = H List Box(
For( i = N Items( ColNamesList ), i >= 1, i--,
// collect references to each analysis in OW_lst
Insert Into( OW_lst, dt << Oneway( Y( Column( ColNamesList[i] ) ), X( :sex ), Means( 1 ), Automatic Recalc( 0 ) ) )
)
)
);
// Message will collect all similar tables in one data table
dtCombined = Report( OW_lst[1] )[Table Box( 1 )] << Make Combined Data Table;
// Alternatively you would be able to get the same result w/o working with a list like follows
//(nw << XPATH( "//TableBox" ))[2] << Make Combined Data Table;Re : variable Y dynamique pour l'analyse à sens unique@XiangCD_MP_User ,
Vous pouvez essayer d'utiliser le filtrage des réponses dans le menu Analyse>Screening. Vous pouvez toujours transmettre la liste des noms de colonne dans l'espace réservé de la variable Y. La sortie du filtrage des réponses permettra à une option dans le triangle rouge d'enregistrer les moyennes pour chaque niveau X ou un tableau de valeurs P qui a la moyenne pour chaque Y.
De plus, si vous trouvez toutes les colonnes qui correspondent à une chaîne et que vous les mettez dans une liste (qui ressemble à ce que vous faites), vous pouvez utiliser le nom de la variable (en utilisant Eval()) dans la variable Y de Response Screening. Ou vous pouvez les regrouper dans un groupe de colonnes et référencer le groupe de colonnes dans le filtrage des réponses. Effectivement il fera la boucle comme vous le souhaitez et c'est dynamique.
Quelque chose comme:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Probe.jmp" );
dt << Response Screening(
X( :Process ),
Y( Column Group( "Responses" ) ),
PValues Table on Launch( 1 ),
Save Means
);
Cela génère les valeurs de p ainsi que la moyenne de Y pour chaque comparaison.