Comment stocker des données dans une liste ?Salut tout le monde,
Je suis confronté à un problème sur la façon de stocker la table de données du sous-ensemble dans une liste, voici mon code :
dt = Open (<PATH of="" file="">);
p= {"G_40", "F_45", "E_57", "F_85", "H_90"};
For( i = 1, i <= N Items( p ), i++,
dt << Select Where(Starts With( dt:ftf, p[i] ) ) ;
tempDT = dt << Subset( output table name( "Subset" ), selected rows( 1 ), selected columns( 0 ), "invisible");
);
</PATH>
J'ai l'intention de stocker tempDT dans la liste vide. Quelqu'un a-t-il une idée sur la fonction de stockage ? Je suis très nouveau sur JSL si en python nous utiliserons la fonction append pour stocker, alors qu'en est-il de jsl ?
Parce que lorsque je supprime le script, puis que je l'exécute, il peut générer toute la table de données du sous-ensemble, mais lorsque je veux tracer un graphique, il génère uniquement le graphique de la dernière table de données du sous-ensemble.Donc n'importe qui peut me donner une idée sur la façon de fonctionner
Merci.
Re : Comment stocker les données dans une listeMerci à tous pour vos réponses.
C'est très utile.Re : Comment stocker les données dans une listecelui de Ian répondre est une bien meilleure approche que d’utiliser une liste. Dans l'approche de liste, vous avez plusieurs boucles for, une pour construire la liste et une (ou plusieurs) pour traiter la liste. Ian effectue tout le traitement dans une seule boucle for, créant un graphique et le déplaçant vers sa destination finale. Il ne crée également qu'un sous-ensemble à la fois et le ferme dès qu'il en a terminé. L'approche de Ian présente un autre avantage : les métadonnées sur le sous-ensemble sont toujours disponibles – vous savez que les paramètres utilisés pour créer le sous-ensemble n'ont pas changé.
Re : Comment stocker les données dans une listeJe créais généralement les rapports dans la même boucle for qui crée les sous-ensembles et fermais les sous-ensembles dès qu'ils n'étaient plus nécessaires. Mais vous pouvez créer une liste de sous-ensembles ouverts, puis envoyer un message à la liste. En interne, la liste répétera le message à chaque élément de la liste.
dt = Open( "$sample_data/big class.jmp" );
p = {"A", "B", "C", "D", "E"};
tableList = {};
For( i = 1, i <= N Items( p ), i++,
dt << Select Where( Starts With( dt:Name, p[i] ) );
tempDT = dt << Subset( output table name( "Subset" ), selected rows( 1 ), selected columns( 0 ), "invisible" );
Insert Into( tableList, tempDT );
);
tableList << Distribution( y( name, height ) );
Wait( 3 );
For( i = 1, i <= N Items( tablelist ), i++,
Close( tableList[i], nosave )
);
Close( dt, nosave );
Vous aurez toujours besoin d'une boucle pour fermer les tables de sous-ensembles lorsque vous en aurez terminé avec elles.
Re : Comment stocker les données dans une listeSi vous regardez la page 167 du Guide de script, il vous montrera les différentes manières d'insérer des éléments dans une liste. Vous devriez pouvoir trouver un moyen simple de le faire. L'abonnement ou l'insertion sont des candidats probables, je pense
Re : Comment stocker les données dans une listeSalut, Jim
En fait, je veux enregistrer le pointeur de la table de données dans une liste.
Mais je ne sais pas comment pointer dans la liste, j'ai consulté le guide de script et j'ai essayé d'écrire le script, mais ce n'est toujours pas possible.
Donc, j'essaie d'utiliser une autre méthode, mais une erreur apparaît toujours.
donc, je ne sais vraiment pas comment stocker la table de données dans une liste.
Je suis vraiment désolé, pouvez-vous me donner un indice sur la façon de procéder ?
Merci.Re : Comment stocker les données dans une listeCherchez-vous à stocker la table de données complète dans le tableau associatif ou, comme vous l'avez spécifié dans votre réponse précédente, dans une liste ? Je supposais que vous vouliez simplement enregistrer le pointeur ou le nom de la table de données dans une liste. Pouvez-vous clarifier s'il vous plait?
Re : Comment stocker les données dans une listeMerci JIm pour la réponse.
J'ai essayé d'utiliser la fonction de tableau associatif, mais une erreur persiste. Existe-t-il une fonction de JSL qui peut résoudre mon problème afin de modifier mon script ?
MerciRe : Comment stocker les données dans une listeLa documentation relative à la gestion des listes se trouve dans le Guide de script pour JMP 13, à la page 161.
Aide==>Livres==>Guide de script==>Travailler avec des collections de données
La vraie question à laquelle vous devez répondre est le fait que votre code crée chaque table de sous-ensemble différente avec le même handle et le même nom de table de données. Étant donné que JMP ne peut pas avoir 2 tables de données portant le même nom, il modifiera le nom de la deuxième, de la troisième.......tables de données. Vous devez donc comprendre comment gérer de tels changements.