<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut les gens,
Je me demande simplement s'il est possible d'écrire un script qui extrait les candidats fractionnés d'une analyse de partition dans une table de données, classés par logworth. Cela peut être fait manuellement lorsque vous adaptez un modèle de partition et faites un clic droit sur la section des candidats.
Parfait David, exactement ce que je cherchais
Scott
Je fais ça assez souvent.Voici un exemple du code que j'utilise
( la réponse à votre question sont les 4 lignes dans la section "extraire le tableau des candidats" ! )
// exemple de données
dt = Ouvert ( "$SAMPLE_DATA/Fitness.jmp" ) ;
dtName = dt << Obtenir le nom ;
// sélectionne la variable de réponse
colNames = dt << Obtenir les noms de colonne ( chaîne de caractères) ;
nouveau = Nouvelle fenetre ( "Sélectionnez Y" , <
kg = Zone de liste ( colNames , MaxSélectionné( 1 ) , < ( 5 ))
) ;
Si (nw[ "Bouton" ] ==- 1 , Jeter ()) ;
sel = kg << Soyez sélectionné ;
Si ( Nitems ( sel) == 0 ,
Jeter ()
,
yCol = sel[ 1 ]
) ;
// utilise toutes les autres colonnes comme variables x
position = Loc ( colNames , yCol) ;
xCols = Retirer ( colNames , pos[ 1 ]) ;
// supprimer la colonne de nom
Retirer ( xCols , 1 ) ;
// lance la plateforme de partition
tapoter = Cloison(
Oui( Éval ( yCol) ) ,
X( Éval ( xCols) ) ,
) ;
// extrait la table des candidats
représentant = tapoter << Signaler ;
candTab = représentant[ "Candidats" ][ TableBox ( 1 )] ;
candDt = candTab << Transformer en tableau de données ;
représentant << Fermer la fenêtre ;
// trie la table des candidats
candDt << Trier ( Par( : LogWorth ) , Ordre (décroissant) , Remplacer le tableau ) ;
// cerise sur le gâteau - ajoutez un script pour que les sélections de lignes
// dans cette table générera des sélections de colonnes dans la table source
Éval ( Analyser ( Insertion d'évaluation ( "\[
candDt << Nouveau Script(
"Sélectionner les colonnes",
cdt = table de données actuelle();
rows = cdt << Obtenir les lignes sélectionnées ;
lstNames = Column(cdt,"Term")[rows] ;
Table de données("^dtName^") << Effacer la sélection de colonne ;
Pour (i=1,i<=NItems(lstNames),i++,
Column( Data Table("^dtName^"), lstNames ) << Définir sélectionné(1)
)
)
]\" ))) ;
Le résultat final est un tableau qui ressemble à ceci :

J'ai inclus le code du script Select Columns attaché à ce tableau car je le trouve particulièrement utile.Ainsi, par exemple, si vous sélectionnez les trois premières lignes de cette table de candidats, l'exécution du script sélectionnera les colonnes correspondantes dans la table de données source.Utile si vous avez beaucoup de colonnes.
- Dave