<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo zusammen,
Ich bin völlig neu in der JMP-Skripterstellung.
Ich versuche, ein Skript zu erstellen, das zu jeder Zeichenspalte in einer Tabelle geht, alle ihre Werte findet (PASS, FAIL usw.) und neue Spalten mit dem Suffix „_CODED“ erstellt, wobei zugewiesene Werte verwendet werden (1, 2, 3 , 4, 5) basierend auf den vorgenannten.
Hier ist das Skript, das ich gerade habe, das funktioniert, aber nur eine einzige Spalte berücksichtigt. Gibt es eine Möglichkeit, eine Variable anstelle dieses Spaltennamens einzufügen, damit alle Spalten berücksichtigt werden?
dt = Datentabelle ("datatable.jmp");
cols = dt << Spaltennamen abrufen (Zeichen); //Alle Zeichenspalten auflisten
For(i = 1, i <= N Items(cols), i++,
dt << Neue Spalte(Spalten << Namen abrufen || "_CODIERT",
Numerisch,
"Nominal",
Format("Beste", 12),
Formel(Name Ausdruck(
If(:Name("Level1") == "PASS", 1, If(:Name("Level1") == "FAIL", 2, If(:Name("Level1") == "", 3, If(:Name("Level1") == "NICHT GETESTET", 4, If(:Name("Level1") == "IGNORE", 5, If(:Name("Level1") == "PASS|PASS" , 6, If(:Name("Level1") == "IGNORE|IGNORE", 7, If(:Name("Level1") == "NOTTESTED|NOTTESTED", 8))))))))
))
);
);
Grundsätzlich würde ich gerne wissen, ob es eine Möglichkeit gibt, das Skript mit jeder Zeichenspalte in einer Tabelle statt nur durchlaufen zu lassen Level 1 . Ich habe versucht zu verwenden Spalten als Variable anstelle von Level 1 , aber dies führte dazu, dass das Skript nicht ausgeführt wurde, weil Anführungszeichen benötigt wurden, oder das Skript suchte nach einer Spalte mit dem Namen "Ebene 1", was nicht das Ziel ist.
Ich habe Teile anderer Skripte genommen und versucht, sie auf dieses anzuwenden, also lassen Sie es mich bitte auch wissen, wenn etwas überflüssig ist. Danke vielmals.
Vielen Dank, es funktioniert!
Das wird es tun:
Neue Tabelle ( "Beispiel" , Zeilen hinzufügen ( 6 ) ,
Neue Spalte ( "aaa" , Charakter , Nominal ,
Werte einstellen ( { "PASSIEREN" , "PASSIEREN" , "SCHEITERN" , "IGNORIEREN" , "" , "IGNORIEREN" } )
) ,
Neue Spalte ( "bbb" , Charakter , Nominal ,
Werte einstellen ( { "PASS|PASS" , "IGNORIEREN|IGNORIEREN" , "PASSIEREN" , "" , "SCHEITERN" , "SCHEITERN" } )
)
) ;
dt = Datentabelle ( "Beispiel" ) ;
Spalten = dt << Spaltennamen erhalten ( Charakter ) ; //Alle Zeichenspalten auflisten
Zum ( ich = 1 , ich <= N Artikel ( Spalten ) , ich ++,
ein_Spalte = Spalten [ ich ] << Namen bekommen ;
codierte_Spalte = ein_Spalte || "_CODIERT" ;
col_expr = evalinsert (
"\[ dt << New Column("^coded_col^", Numeric, "Nominal",
Format("Beste", 12), Formel(
if (:name("^one_col^") == "PASS", 1,
:name("^one_col^") == "FAIL", 2,
:name("^one_col^") == "", 3,
:name("^one_col^") == "NICHT GETESTET", 4,
:name("^one_col^") == "IGNORE", 5,
:name("^one_col^") == "PASS|PASS", 6,
:name("^one_col^") == "IGNORE|IGNORE", 7,
:Name("^one_col^") == "NICHT GETESTET|NICHT GETESTET", 8;
);
)
);]\" ) ;
auswerten ( analysieren ( col_expr ))
) ;