Plusieurs tables de données créées dans un même scriptSalut tout le monde,
J'essaie de créer une deuxième table de données à partir d'une première table de données créée dans un même script, est-ce possible ?
Exemple:
dt_= Ouvrir(path_pst);
//Premier tableau de données
début = Nouveau Tableau("W",
Nouvelle colonne ("S"),
Nouvelle colonne ("Z"),
Nouvelle colonne ("X"),
Nouvelle colonne ("Y"),
Nouvelle colonne ("E"),
Nouvelle colonne ("W"),
Nouvelle colonne ("S"),
Ajouter des lignes(545)
);
//Quelques calculs
pour(i=1,i<=545,i++,
W:B[i] = ((dt_ - dt_*60)/8 ;
W:S[i] = dt_[i] ;
W:X[i] = dt_[i]/10000000 ;
W:Y[i] = dt_[i]/10000000 ;
W:E[i] = dt_[i] ;
W:W[i] = dt_[i] ;
W:S[i] = dt_[i] ;
);
//Création d'une deuxième table de données
début = Nouvelle Table("WIWM",
Nouvelle colonne("Si"),
Nouvelle colonne("Ba"),
Nouvelle colonne("X1"),
Nouvelle colonne("Y1"),
Nouvelle colonne("En"),
Nouvelle colonne("Wa"),
Nouvelle colonne ("M"),
Ajouter des lignes(109)
);
//Calcul pour le deuxième tableau de données basé sur le premier tableau de données créé
pour (i=1, i<=109,i++,
WIWM:Ba[i] = (W:B[i+109]+W:B[i+218]+W:B[i+327]+W:B[i+436])/4 ;
WIWM:Si[i] = W:S[i] ;
WIWM:X1[i] = W:X[i] ;
WIWM:Y1[i] = W:Y[i] ;
WIWM:En[i] = W:E[i] ;
WIWM:Wa[i] = W:W[i] ;
);
Une fois que le premier tableau de données est arrivé comme prévu, le deuxième tableau de données est livré avec les numéros de lignes attendus mais vide (pour la condition non exécutée).
Si je sépare le script, dans une première partie, je vais effectuer le premier calcul et l'enregistrer et après avoir exécuté une deuxième partie sur le tableau de données enregistré, je ferai effectuer mon calcul pour le deuxième tableau de données.
Merci.
Re : Plusieurs tables de données créées dans un même scripthttps://community.jmp.com/t5/Uncharted/What-is-the-JSL-Matrix/ba-p/33349 est une brève introduction. Il y a aussi la doc :
http://www.jmp.com/support/help/Matrices.shtml
http://www.jmp.com/support/help/Matrix_Functions.shtml
Re : Plusieurs tables de données créées dans un même scriptPeux-tu me donner un exemple?
Merci
Re : Plusieurs tables de données créées dans un même scriptPuisque vous travaillez avec des matrices, je poserai alors la question, pourquoi mettez-vous les données dans une table de données, puis traitez-vous la table de données comme s'il s'agissait d'un support de matrice?Toutes les étapes que vous effectuez dans votre script pourraient facilement et plus rapidement être effectuées en JSL ouvert à l'aide de matrices.
Re : Plusieurs tables de données créées dans un même scriptSalut,
Merci pour une relecture rapide.
Oui, je travaille avec une matrice, la première est n colonnes et 545 lignes (je peux utiliser la fonction de numéro de col mais c'était à vous de voir le nombre)
À partir de la première table de données réelle, j'ai besoin de filtrer et de créer une nouvelle table de données - "la première" avec 545 lignes et une matrice également.
Après cela, je dois effectuer un autre calcul à partir du "premier" et éventuellement obtenir le "second" avec 109 lignes et aussi martix.
Merci.
Re : Plusieurs tables de données créées dans un même scriptMerci Jim. J'ajoute ceci à la liste des choses à approfondir... comme vous, je n'avais aucune idée qu'il y avait quelque chose comme ça.
Re : Plusieurs tables de données créées dans un même scriptVotre script m'a appris quelque chose de nouveau.Je n'ai trouvé aucune documentation à ce sujet, mais votre script montre que cela fonctionne ..... en quelque sorte.
Dans votre code, vous référencez des lignes et des colonnes dans les tables de données en
nom de la table de données : nom de la colonne[ ligne ]
Ainsi, lorsque vous spécifiez
Début = Nouveau tableau( "W", Nouvelle colonne( "S"), ..........
Vous référencez la colonne "S" dans la ligne "5" comme
W:S[5]
et apparemment ça marche.Cependant, plus loin dans votre script, vous essayez d'utiliser la même logique pour la table de données que vous nommez
Début = Nouvelle Table( "WIWM", Nouvelle Colonne( "Si").........
et vous essayez de faire référence à votre table de données nommée W
WIWM:SI[1] = W:S[1] ;
et ça ne marche pas.
Le problème est que la bonne façon de configurer une référence d'espace de noms de table de données consiste à attribuer le nom de l'espace de noms à l'aide d'une instruction d'affectation, et non le nom de la table de données.Mon nouvel apprentissage est qu'apparemment, JMP utilisera le nom de la table de données comme espace de noms jusqu'à ce qu'une nouvelle table de données soit créée, puis il perd le lien d'espace de noms du nom de la table de données.
L'essentiel est que votre code fonctionnera bien si vous modifiez la ligne
Début = Nouveau Tableau("W",
pour
W = Nouveau Tableau("W",
et
Début = Nouvelle Table("WIWM",
pour
WIWM = Nouvelle Table("WIWM",
Enfin, vous ouvrez un fichier quelconque et le référencez comme
dt_ = open(path_pst);
Qu'est-ce que tu ouvres ?Je suppose que c'est une matrice.Pourriez-vous s'il vous plaît revenir vers moi à ce sujet, afin que je puisse avoir une meilleure compréhension de ce qui se passe réellement dans votre code.
Re : Plusieurs tables de données créées dans un même scriptutiliser le tableau de données objet retourné par la NewTable fonction pour savoir dans quelle table se trouve une variable. Les tables nom n'est pas utilisé pour la portée des variables. La troisième affectation utilise les trois tables. J'ai nommé tout de manière unique, mais ce n'est pas nécessaire avec la portée. dt3 : , par exemple, définit le portée , ou les endroits où chercher, pour la variable qui suit, z, dans cet exemple.
dt1 = New Table( "table name A", New Column( "x", values( [1 2 3] ) ) );
dt2 = New Table( "table name Squares", New Column( "y" ), addrows( 3 ) );
dt3 = New Table( "table name Cubes", New Column( "z" ), addrows( 3 ) );
For( i = 1, i <= N Rows( dt1 ), i++,
dt2:y[i] = dt1:x[i] ^ 2;
dt3:z[i] = dt1:x[i] * dt2:y[i];
);
small table of Cubessmall table of Cubespetite table de Cubes