Skriptproblem: Variablennamen werden nicht dynamisch an bedingte Auswertungsanweisungen übergeben<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo allerseits,
Ich habe einige Probleme beim Entwerfen eines Skripts, das mir bei einigen DOE-Analysen, die wir regelmäßig durchführen, Stunden Zeit sparen wird.
Folgendes möchte ich mit dem Skript tun:
1) Erstellen Sie eine neue Variable für jede ursprüngliche Variable im Befehl cc = {Variables}, den Sie im Skript finden. DAS FUNKTIONIERT GUT.
2) Für jede neu erstellte Variable möchte ich eine bedingte Anweisung anhängen, die auswertet, ob die in der ursprünglichen Variablen enthaltenen Daten über einem bestimmten Schwellenwert liegen oder nicht.
Ich habe das Gefühl, dass ich nah dran bin, das Problem ist, dass innerhalb der bedingten Anweisung der tatsächliche Name der Variablen im cc-Befehl nicht richtig übergeben wird. Daher meine Skriptfehler aus.
Wenn Sie so freundlich sein könnten, würde ich gerne besser verstehen, was hier falsch läuft. Als Hilfe habe ich einige simulierte Daten und das aktuelle Skript angehängt, an dem ich arbeite.
Außerdem möchte ich nur sicherstellen, dass es innerhalb eines Skripts in Ordnung ist, mehrere bedingte Anweisungen an mehrere Variablen weiterzugeben.
Vielen Dank für jede Hilfe, die mir hilft, aus diesem Problem zu lernen.
Skript (auch angehängt sowie Daten)
CD = Aktuelle Datentabelle () ;
// Vom Benutzer angegebene Spaltennamen
cc = { C1 RLU , C2 RLU , C3 RLU } ;
Zum ( ich = 1 , ich <= N Artikel ( cc ) , ich ++,
Neue Spalte ( Verkohlen ( cc [ ich ]) || "5e3" , Numerisch , Formel ( WENN ( cc [ ich ] > 5000 , 1 , 0 ))) ;
( Neue Spalte ( Verkohlen ( cc [ ich ]) || "1e4" , Numerisch )) ; 10000 // Wenn die erste Bedingung funktionierte, würde hier eine zweite für 10000 erstellt werden
( Neue Spalte ( Verkohlen ( cc [ ich ]) || "2e4" , Numerisch ))) ; 20000 // eine weitere Bedingung hier für 20000
Betreff: Skriptproblem: Variablennamen werden nicht dynamisch an bedingte Auswertungsanweisungen übergebenIch möchte Ihnen beiden nur sehr herzlich für Ihre Hilfe danken. Dies hat es behoben, aber was noch wichtiger ist, ich werde zu einem späteren Zeitpunkt wissen, wie ich Probleme durch diese Art von Problem lösen kann.
Sehr geschätzt.
Betreff: Skriptproblem: Variablennamen werden nicht dynamisch an bedingte Auswertungsanweisungen übergebenMark Bailey Die Antwort von ist gut.
Wenn Sie immer noch Spalten mit Formeln haben möchten, müssen Sie sich daran erinnern, dass JMP davon ausgeht, dass die Formel in der Spalte und nicht zum Zeitpunkt der Skriptausführung ausgewertet werden sollte. Als Ergebnis setzt es cc[1] in der Formel anstelle des Spaltenbezugs. Sie müssen die Spaltenreferenz ersetzen, bevor Sie New Column() auswerten.
cd = Current Data Table();
// User specified column names
cc = {C1 RLU, C2 RLU, C3 RLU};
For( i = 1, i <= N Items( cc ), i++,
Eval(
Substitute(
Expr(
New Column( Char( cc[i] ) || "5e3", Numeric, formula( col > 5000 ) );
New Column( Char( cc[i] ) || "1e4", Numeric, formula( col > 10000 ) );
New Column( Char( cc[i] ) || "2e4", Numeric, formula( col > 20000 ) );
),
expr(col), cc[1]
)
);
);
-Jeff
Betreff: Skriptproblem: Variablennamen werden nicht dynamisch an bedingte Auswertungsanweisungen übergebenVersuchen Sie dieses Skript:
CD = Aktuelle Datentabelle () ;
// Vom Benutzer angegebene Spaltennamen
cc = { C1 RLU , C2 RLU , C3 RLU } ;
Zum ( ich = 1 , ich <= N Artikel ( cc ) , ich ++,
CD << Neue Spalte ( Verkohlen ( cc [ ich ] ) || "5e3" ,
Numerisch ,
Werte (
Lokal ( { Daten } ,
Daten = cc [ ich ] << Holen Sie sich als Matrix ;
Daten > 5000
)
)
) ;
CD << Neue Spalte ( Verkohlen ( cc [ ich ] ) || "1e4" ,
Numerisch ,
Werte (
Lokal ( { Daten } ,
Daten = cc [ ich ] << Holen Sie sich als Matrix ;
Daten > 10000
)
)
) ;
CD << Neue Spalte ( Verkohlen ( cc [ ich ] ) || "2e4" ,
Numerisch ,
Werte (
Lokal ( { Daten } ,
Daten = cc [ ich ] << Holen Sie sich als Matrix ;
Daten > 20000
)
)
) ;
) ;