OK, j'ai donc commencé à me familiariser avec JMP et travaillé avec succès sur mon premier script pour extraire, réorganiser et formater une table de données à partir d'une base de données. Fonctionne bien et fait gagner du temps. Comme j'ai développé ce script avec une copie de Sautez dans le script JMP sur mes genoux, j'étais naturellement intéressé par la compréhension du scénario. Voici donc le problème.
Pensez à un processus de fabrication nécessitant de nombreuses mesures différentes. La base de données contient toutes les méthodes de test dans une colonne et tous les résultats de test dans une autre colonne. Pour obtenir ce que je veux, je dois diviser ce tableau. Cependant, étant donné qu'une grande partie de ce que nous avons dans la base de données provient de fichiers Excel hérités, un recodage de la colonne contenant les noms de test est nécessaire en raison d'entrées antérieures erronées. Pour accéder à ce morceau de (re) code, je suis allé via Recode ... dans le menu Colonnes, et c'est le seul élément du script que je ne comprends pas. (C'est généralement un script très basique.)
Dans l'exemple ci-dessous, les lettres majuscules et les chiffres reflètent les variations du nom de la méthode de test réellement utilisée. Par exemple, A est un test (disons le test de pH), B est un autre test (par exemple la viscosité). A (1), A (2), ... A (n) seraient tous recodés en A, puis B (1), ... B (n) à B, et ainsi de suite. Maintenant, comment le logiciel fait-il maintenant exactement de ce morceau de code quelles variables vont ensemble? J'ai vérifié le guide de script et l'index de script mais je ne comprends toujours pas. _rcOrig et _rcNow, que signifient-ils? Le script, c'est-à-dire les lignes et les colonnes, sont disposés exactement comme ils le sont dans ma copie du script complet.
Merci pour une réponse.
dt << Recode Column(
dt:TestName,
{Map Value(
_rcOrig,
{"A(1)", "A(2)",
"A(3)", "A(4)",
"A(5)", "A(6)", "B(1)",
"B(2)", "C(1)", "C(2)",
"C(3)", "C(4)", "D(1)", "D(2)", "E(1)",
"E(2)", "F(1)", "F(2)", "G(1)", "G(2)",
"H(1)", "H(2)", "I(1)", "I(2)",
"I(3)", "I(4)", "J(1)", "J(2)", "K(1)",
"K(2)", "L(1)", "L(2)",
"M(1)", "M(2)", "M(3)",
"M(4)"},
Unmatched( _rcNow )
)},
Target Column( col1 )
);
dt << End Data Update;J'ai créé une nouvelle colonne dans une table de données avec les valeurs de test que vous aviez dans le JSL que vous avez fourni.

J'ai ensuite ouvert la boîte de dialogue Recode et effectué les modifications de recodage.

Je suis ensuite allé au triangle rouge et j'ai sélectionné
Script => Fenêtre Enregistrer dans le script
et ci-dessous est ce qu'il m'a donné.
Names Default To Here( 1 );
dt = Data Table( "Big Class" );
dt << Begin Data Update;
col1 = dt << New Column( dt:test );
col1 << Set Name( "test 2" );
dt << Move Selected Columns( {col1}, after( dt:test ) );
dt << Recode Column(
dt:test,
{Map Value(
_rcOrig,
{"A(1)", "A", "A(2)", "A", "A(3)", "A", "A(4)", "A", "A(5)", "A", "A(6)",
"A", "B(1)", "B", "B(2)", "B", "C(1)", "C", "C(2)", "C", "C(3)", "C", "C(4)",
"C", "D(1)", "D", "D(2)", "D", "E(1)", "E", "E(2)", "E", "F(1)", "F", "F(2)",
"F", "G(1)", "G", "G(2)", "G", "H(1)", "H", "H(2)", "H", "I(1)", "I", "I(2)",
"I", "I(3)", "I", "I(4)", "I", "J(1)", "J", "J(2)", "J", "K(1)", "K", "K(2)",
"K", "L(1)", "L", "L(2)", "L", "M(1)", "M", "M(2)", "M", "M(3)", "M", "M(4)",
"M"},
Unmatched( _rcNow )
)},
Target Column( col1 )
);
dt << End Data Update;
Dans l'exemple, vous pouvez voir comment les valeurs sont définies pour chacune des paires valeur / résultat
Salut,
Si c'est toujours une lettre, vous pouvez créer une formule simple comme celle-ci:
dt << New Column( "Test_Name", formula( Left(:TestName, 1)));