Comment puis-je importer la propriété de colonne dans le fichier de données JMP ?Salut,
Nouveau défi:
J'ai créé la Column Property : Numéro d'essai dans le 1er_fichier. Chaque test a un numéro de test unique qui peut être trouvé dans la propriété de la colonne comme vous pouvez le voir ci-dessous dans le cercle rouge en surbrillance :

J'ai un 2ème fichier JMP qui a 1 colonne (Test):

J'essaie d'écrire un script qui peut copier le numéro de test du 1er fichier et attribuer la valeur la plus basse parmi les tests du 2ème fichier afin que ma sortie ressemble relativement à ceci :
Le numéro de test est défini dans la propriété Colonne du 1er fichier
Par exemple Brûler, Refroidir, ESD = Min[Numéro de test] = 21
Production:

Aucune suggestion?
Merci
Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Bon essai sur le If ..... mais la ramification doit être plus large.Voir ci-dessous......
Names Default To Here( 1 );
dt1 = Data Table( "1st_file" );
dt2 = Data Table( "2nd file" );
dt2 << New Column( "Test Number" );
For( i = 1, i <= N Rows( dt2 ), i++,
k = 1;
While( Word( k, dt2:test[i], "," ) != "",
theWord = Word( k, dt2:test[i], "," );
If( theWord != "N/A",
If( k == 1,
theTest = Column( dt1, theWord ) << get property( "Test Number" ),
theCompare = Column( dt1, theWord ) << get property( "Test Number" );
If( theCompare < theTest,
theTest = theCompare
);
)
,
theTest = 0
);
k++;
);
dt2:test number[i] = theTest;
);Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Salut @txnelson ,
Une dernière question
j'en ai un peu N / A Testez dans les rangées qui ressemblent à ceci. je voulais attribuer Numéro d'essai comme 0 à N / A Lignes

j'ai ajouté un si() déclaration, mais je ne suis pas sûr d'avoir saisi la déclaration correctement. Pourriez-vous s'il vous plaît le regarder?
Names Default To Here( 1 );
dt1 = Data Table( "1st_file" );
dt2 = Data Table( "2nd file" );
dt2 << New Column("Test Number");
For( i = 1, i <= N Rows( dt2 ), i++,
k = 1;
While( Word( k, dt2:test[i], "," ) != "",
theWord = Word( k, dt2:test[i], "," );
If( k == 1,
theTest = Column( dt1, theWord ) << get property( "Test Number" ),
theCompare = Column( dt1, theWord ) << get property( "Test Number" );
If( theCompare < theTest,
theTest = theCompare
);
);
k++;
<STRONG>If( Word( 1, dt2:test[i], "," ) == N/A,
dt2:test number[i] = 0;
);</STRONG><BR /> );
dt2:test number[i] = theTest;
);
Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Names Default To Here( 1 );
dt1 = Data Table( "1st_file" );
dt2 = Data Table( "2nd file" );
For( i = 1, i <= N Rows( dt2 ), i++,
k = 1;
While( Word( k, dt2:test[i], "," ) != "",
theWord = Word( k, dt2:test[i], "," );
If( k == 1,
theTest = Column( dt1, theWord ) << get property( "Test Number" ),
theCompare = Column( dt1, theWord ) << get property( "Test Number" );
If( theCompare < theTest,
theTest = theCompare
);
);
k++;
);
dt2:test number[i] = theTest;
);Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Salut @txnelson ,
Pouvez-vous s'il vous plaît poster le code si possible? J'ai des délais pour terminer cette tâche. J'ai essayé d'utiliser la fonction while() pour les lignes qui ont moins de 3 Test mais ça ne s'exécute pas. La discussion devient longue et confuse.
Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Salut @txnelson ,
J'ai une suggestion. Puis-je créer une liste et stocker le numéro de test dans la liste et utiliser la syntaxe Mini() attribuer le numéro le plus bas ?
For (i=1, i<=2, i++,
theWord = word(i,dt2:test[1],",");
theTest() = column( dt1, theWord ) << get property("Test Number");
dt2:test number[1] = Min(theTest);
);
Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Celui-ci est sur moi ..... Je faisais un test avec la mauvaise variable.Les déclarations faisant la comparaison doivent se lire
If( theCompare < theTest,
theTest = theCompare
);
Mais vous avez un autre problème ...... le script suppose que vous avez toujours 3 valeurs dans chacune des lignes de la colonne Test.S'il y en a moins de 3, le script échouera, ou s'il y en a plus de 3, il ne sera jamais comparé aux éléments 4,5, etc.
Jetez un œil à la fonction While() pour savoir comment résoudre ce problème.
Ci-dessous le code corrigé pour les instructions de comparaison
Names Default To Here( 1 );
dt1 = Data Table( "1st_file" );
dt2 = Data Table( "2nd file" );
For( i = 1, i <= N Rows( dt2 ), i++,
theWord = Word( 1, dt2:test[i], "," );
theTest = Column( dt1, theWord ) << get property( "Test Number" );
theWord = Word( 2, dt2:test[i], "," );
theCompare = Column( dt1, theWord ) << get property( "Test Number" );
If( theCompare < theTest,
theTest = theCompare
);
theWord = Word( 3, dt2:test[i], "," );
theCompare = Column( dt1, theWord ) << get property( "Test Number" );
If( theCompare < theTest,
theTest = theCompare
);
dt2:test number[i] = theTest;
);
Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Salut @txnelson ,
La logique que vous avez suggérée ne fonctionne pas pour certaines conditions. Si je change l'ordre du test, le script génère des valeurs incorrectes et le numéro de test pour les lignes 4,5,6 est vide
Test = Refroidissement, ESD, Courant
Numéro de test = Minimum du numéro de test [32, 87, 23] = 23
Le numéro de test doit être 23 dans la 2e colonne.

J'ai corrigé l'énoncé que vous suggérez :
For (i=1, i<=nrows(dt2), i++,
theWord = word(1,dt2:test[i],",");
theTest = column( dt1, theWord ) << get property("Test Number");
theWord = word(2,dt2:test[i],",");
theCompare = column( dt1, theWord ) << get property("Test Number");
If( theCompare < theWord, theTest = theCompare );
theWord = word(3,dt2:test[i],",");
theCompare = column( dt1, theWord ) << get property("Test Number");
If( theCompare < theWord, theTest = theCompare );
dt2:test number[i] = theTest;
);
Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Le problème est avec cette déclaration
theWord = word(i,dt2:test[i],",");
Votre boucle For() utilise "i" comme index, et elle varie de 1 à N Rows(dt2).Il varie donc de 1 à 5. Vous utilisez l'index "i" à 2 endroits différents dans la fonction Word().dt2:Test[i] lira la 1ère à 5 lignes.Mais, si vous jetez un oeil à la référence de syntaxe JSL pour la fonction Word()
Word(n|[first last], string, <delimiter>, <Unmatched(result string)>)
Description
Returns the nth item of the string, where words are sub-strings separated by any number of
any characters in the delimiter argument.
Arguments
n The position of the word being extracted.
[first last] A matrix that defines the beginning and end word range to return.
string The string that is evaluated.
delimiter (Optional) The character used as a boundary. If delimiter is absent, an ASCII
space is used. If delimiter is the empty string, each character is treated as a separate
word. If delimiter is an empty string, each character is treated as a spate word.
Unmatched(result string) The string to print if no match is found.
Examples
This example returns the last name:
Word( 2, "Katie Layman" );
Note
See “Item(n|[first last], string, <delimiter>, <Unmatched(result string)>, <Include
Boundary Delimiters(Boolean)>)” on page 35 for examples of how Word() differs from
Item().
ce que vous spécifiez pour le mot que vous souhaitez supprimer dépend de la valeur de "i".Ce n'est pas ce que vous voulez.Dans le code que j'ai fourni, si vous regardez, c'était soit un 1,2 ou 3
Il faut donc ajuster ça
Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Salut @txnelson ,
J'ai utilisé la boucle For dans le script que vous avez posté.
names default to here(1);
dt1 = data table("1st_file");
dt2 = data table("2nd file");
dt2 << New Column("Test Number");
For(i=1, i<=nrows(dt2),i++,
theWord = word(i,dt2:test[i],",");
theTest = column( dt1, theWord ) << get property("Test Number");
theWord = word(i,dt2:test[i],",");
theCompare = column( dt1, theWord ) << get property("Test Number");
If( theCompare < theWord, theTest = theCompare );
theWord = word(i,dt2:test[i],",");
theCompare = column( dt1, theWord ) << get property("Test Number");
If( theCompare < theWord, theTest = theCompare );
dt2:test number[i] = theTest;
);
<BR />Il n'attribue pas de valeurs aux lignes 4 et 5 du 2e fichier

Je suis sûr que j'ai fait une erreur dans la boucle For. Pouvez-vous s'il vous plaît me donner quelques conseils.
Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?@txnelson Tu es un génie. Oui, vous avez raison, je vais commencer à apprendre. Merci beaucoupRe : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?@Jacksmith12 Toutes ces instructions et fonctions vous ont été présentées dans les exemples précédents.Vous devez commencer à pouvoir essayer de les assembler vous-même.En informatique, la seule façon d'apprendre est de faire des erreurs et de déterminer quel est le problème.Vous trouverez ci-dessous un flux pour une seule entrée de votre 2nd_file, qui renvoie le numéro de test minimum.Vous devriez pouvoir assembler le reste du code.
names default to here(1);
dt1 = data table("1st_file ");
dt2 = data table("2nd file ");
dt2 << New Column("Test Number");
theWord = word(1,dt2:test[1],",");
theTest = column( dt1, theWord ) << get property("Test Number");
theWord = word(2,dt2:test[1],",");
theCompare = column( dt1, theWord ) << get property("Test Number");
If( theCompare < theWord, theTest = theCompare );
theWord = word(3,dt2:test[1],",");
theCompare = column( dt1, theWord ) << get property("Test Number");
If( theCompare < theWord, theTest = theCompare );
dt2:test number[1] = theTest;
Assurez-vous de comprendre chaque ligne du code, et si ce n'est pas le cas, posez des questions spécifiques sur ce que vous ne comprenez pas.
Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Pouvez-vous donner un exemple de démarrage rapide ?Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Dans 1st_file, les colonnes n'ont qu'une seule propriété de colonne chacune, numéro de test... pas de nom de test.
En supposant qu'une deuxième propriété de colonne pour chaque colonne de nom de test aurait dû se trouver dans la table de données 1st_File, je pense que la meilleure façon d'y accéder serait de créer un tableau associatif. Ensuite, parcourez chacune des colonnes, en extrayant les propriétés des 2 colonnes et en les plaçant dans le tableau associatif. Enfin, on bouclerait dans le 2nd_file, ligne par ligne, et en prenant la valeur de la colonne Test, il s'agirait d'une simple recherche dans le tableau associatif pour obtenir le numéro de test requis.Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Salut @txnelson ,
Faites un clic droit sur les propriétés de la colonne et vous trouverez le numéro de test et le nom du test
Re : Comment puis-je importer la propriété de la colonne dans le fichier de données JMP ?Comment savoir quelles colonnes de 1st_file sont évaluées dans le calcul de la valeur d'une ligne particulière dans 2nd_file ?