<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao a tutti,
Sono completamente nuovo nello scripting JMP.
Sto cercando di creare uno script che andrà a ciascuna colonna di caratteri in una tabella, troverà tutti i suoi valori (PASS, FAIL, ecc.) e creerà nuove colonne con suffisso "_CODED" usando i valori assegnati (1, 2, 3 , 4, 5) sulla base di quelli sopra citati.
Ecco lo script che ho in questo momento, che funziona, ma tiene conto solo di una singola colonna. C'è un modo per inserire una variabile al posto del nome di quella colonna in modo che tutte le colonne vengano contabilizzate?
dt = Tabella dati("datatable.jmp");
cols = dt << ottieni i nomi delle colonne (Carattere); //Elenca tutte le colonne di caratteri
For(i = 1, i <= N Items(cols), i++,
dt << Nuova colonna(cols << ottieni il nome || "_CODIFICATO",
Numerico,
"Nominale",
Formato("Migliore", 12),
Formula(Nome Espr(
If(:Name("Livello1") == "PASS", 1, If(:Name("Livello1") == "FAIL", 2, If(:Name("Livello1") == "", 3, If(:Nome("Livello1") == "NON OTTESTATO", 4, If(:Nome("Livello1") == "IGNORA", 5, If(:Nome("Livello1") == "PASS|PASS" , 6, If(:Nome("Livello1") == "IGNORA|IGNORA", 7, If(:Nome("Livello1") == "NOTEST|NOTESTED", 8)))))))))
))
);
);
Fondamentalmente, mi piacerebbe sapere se c'è un modo per far passare lo script con ogni colonna Carattere in una tabella invece che solo Livello 1 . Ho provato ad usare coll come variabile al posto di Livello 1 , ma ciò ha impedito l'esecuzione dello script perché erano necessarie le virgolette oppure lo script avrebbe cercato una colonna denominata "Livello 1", che non è l'obiettivo.
Ho preso pezzi di altri script e ho provato ad applicarli a questo, quindi per favore fatemi sapere anche se c'è qualcosa di ridondante. Molte grazie.
Questo lo farà:
Nuova tavola ( "Esempio" , Aggiungi righe ( 6 ) ,
Nuova colonna ( "aaa" , Carattere , Nominale ,
Imposta i valori ( { "PASSAGGIO" , "PASSAGGIO" , "FALLIRE" , "IGNORARE" , "" , "IGNORARE" } )
) ,
Nuova colonna ( "bb" , Carattere , Nominale ,
Imposta i valori ( { "PASS|PASS" , "IGNORA|IGNORA" , "PASSAGGIO" , "" , "FALLIRE" , "FALLIRE" } )
)
) ;
dt = Tabella dati ( "Esempio" ) ;
coll = dt << ottenere i nomi delle colonne ( Carattere ) ; //Elenca tutte le colonne di caratteri
Per ( io = 1 , io <= N articoli ( coll ) , io ++,
one_col = coll [ io ] << ottenere il nome ;
codice_col = one_col || "_CODIFICATO" ;
col_espr = evalinsert (
"\[ dt << Nuova colonna("^coded_col^", Numerico, "Nominale",
Formato("Migliore", 12), Formula(
if (:name("^one_col^") == "PASS", 1,
:name("^one_col^") == "FAIL", 2,
:name("^one_col^") == "", 3,
:name("^one_col^") == "NON TESTATO", 4,
:name("^one_col^") == "IGNORA", 5,
:name("^one_col^") == "PASS|PASS", 6,
:name("^one_col^") == "IGNORA|IGNORA", 7,
:Nome("^one_col^") == "NON TENUTO|NOTATO", 8;
);
)
);]\" ) ;
eval ( analizzare ( col_espr ))
) ;