Wertreihenfolge im JMP-Skript nach einer Variablen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo alle,
In meinem Datensatz verwende ich eine Spalte namens „Set“ als X-Achsen-Variable in einem Balkendiagramm.Ich möchte, dass sie in der Reihenfolge vom kleinsten Antwortwert zum größten Antwortwert sortiert werden, sodass ich Balken habe, deren Länge zunimmt.Wenn ich zum Beispiel folgende Daten habe:
Antwort festlegen
Eine 5
B -7
C 10
Ich möchte, dass die Reihenfolge im Balkendiagramm B, A, C ist.Offensichtlich kann ich die Eigenschaft folgendermaßen festlegen:
Set < {"B", "A", "C"}), aber ich versuche dies zu tun, ohne die Namen hart codieren zu müssen.Ich möchte in der Lage sein, den Wert NACH einer Variablen zu ordnen, insbesondere nach meiner Antwort.Ich möchte, dass dies ein Standardskript ist, das ich auf mehrere Datensätze anwenden kann, ohne es immer wieder ändern zu müssen.
Grüße,
Michael.
Betreff: Wertreihenfolge im JMP-Skript nach einer VariablenZu Ihrer Information: Für JMP 16 musste ich das Format ändern, um die Wertreihenfolge hinzuzufügen:
:col << Set Property(
"Value Ordering",
Eval(myList)
);
Betreff: Wertreihenfolge im JMP-Skript nach einer VariablenIm ersten Fall enthält die Liste nur Variablennamen. Die Auswertungsliste wertet einfach jede Variable aus. Im zweiten Fall enthält die Liste Dinge (LSL, USL, Target), die nur im Kontext der Set Property-Nachricht als Ganzes sinnvoll sind. Eval List kennt diesen Kontext nicht und kann daher nicht herausfinden, was mit dem ersten Ding geschehen soll, das es sieht: LSL. In diesem Fall müssen Sie den komplexeren Ausdruck verwenden, den Sie für den anderen Fall ermittelt haben.
lLimit = 55;
uLimit = 70;
tLimit = 62.5;
Eval(
Eval Expr(
:height << Set Property(
"Spec Limits",
{LSL( Expr( lLimit ) ), USL( Expr( uLimit ) ), Target( Expr( tLimit ) )}
)
)
);Betreff: Wertreihenfolge im JMP-Skript nach einer VariablenGroßartig! Ich sehe, dass das in diesem Fall funktioniert. Aber im Fall der Spezifikationsgrenzen wird diese Liste nicht ausgewertet? Beim Auswerten der Liste erhalte ich die Fehlermeldung, dass das LSL-Argument nicht zu gefallen scheint.
lLimit = 55 ;
uLimit = 70 ;
tLimit = 62,5 ;
:Höhe << Eigenschaft festlegen ( „Spezifikationsgrenzen“ ,
Bewertungsliste ({LSL(lLimit), USL(uLimit), Target(tLimit)}));
Betreff: Wertreihenfolge im JMP-Skript nach einer VariablenOder Sie können Eval List verwenden, um alle Mitglieder einer Liste auszuwerten:
:sex << Set Property("Value Ordering",Eval List({my1,my2}));Betreff: Wertreihenfolge im JMP-Skript nach einer VariablenIch antworte auf diesen Thread wegen eines ähnlichen Problems bei der Wertreihenfolge.Ich kann immer noch nicht herausfinden, wann ich Expr und Eval Expr für Spalteneigenschaften in JSL für JMP 12 oder JMP 13 verwenden soll. Es scheint, dass die allgemeine Form funktionieren sollte:
: Satz << Eigenschaft festlegen ( „Wertordnung“ , Bewertung ( {meine Liste} ) ) ;
: Satz << Eigenschaft festlegen ( „Wertordnung“ , Bewertung ( {mein1,mein2} ) ) ;
Versuchen Sie in den Daten der großen Klasse, die Spalte :sex so festzulegen, dass „M“ vor „F“ steht:
mein1 = "M" ;
mein2 = "F" ;
: Sex << Eigenschaft festlegen ( „Wertordnung“ , Bewertung( { mein1 , mein2 })) ;
Aber es fügt den Text „my1“ und „my2“ anstelle von „M“ und „F“ ein.
Ich habe den Beitrag zum Hinzufügen von Spezifikationsgrenzen als Spalteneigenschaft kopiert. http://www.jmp.com/support/notes/46/953.html
Es scheint, dass Sie Expr und Eval Expr verwenden müssen, um die Zeichenvariablen anzuzeigen. Wenn Sie nur diesen Teil probieren:
: Sex << Eigenschaft festlegen ( „Wertordnung“ , { Ausdruck ( mein1 ) , Ausdruck ( mein2 )})
Sie erhalten den Text „Expr“ und „Expr“ in der Spalteneigenschaft. Wenn Sie „Eval Expr“ in „Expr“ einfügen, wird die korrekte Phrase an das Protokoll zurückgegeben.
Evaluierungsexpr (
: Sex << Eigenschaft festlegen ( „Wertordnung“ , { Ausdruck ( mein1 ) , Ausdruck ( mein2 )})
) ;
kehrt zurück:
:sex << Set Property( "Value Ordering", {"M", "F"} )
und schließlich setzt dieser gesamte Code die Spalteneigenschaft korrekt.
Bewertung (
Evaluierungsexpr (
: Sex << Eigenschaft festlegen ( „Wertordnung“ , { Ausdruck ( mein1 ) , Ausdruck ( mein2 )})
)
) ;
Die Erklärung im Beitrag zu den Spezifikationsgrenzen lautete: „Die Spalte speichert die Spalteneigenschaft mit den bereitgestellten Werten ohne Auswertung oder Validierung der bereitgestellten Argumente.“ Um Spalteneigenschaften mithilfe von JSL-Code hinzuzufügen, der Variablen enthält, muss das Skript alle Variablen in ihre tatsächlichen Werte konvertieren.“
Betreff: Wertreihenfolge im JMP-Skript nach einer VariablenDer folgende Ansatz ist besser (Oneliner macht Spaß, reicht aber selten aus ...). Es sollte auch dann funktionieren, wenn es Unentschieden gibt und auch wenn es mehrere Werte für jede Ebene gibt und die Reihenfolge der Werte beispielsweise auf der mittleren Antwort jeder Ebene basieren soll.
Zusammenfassen ( G = von ( : Satz ) , M = Bedeuten ( : Antwort ) ) ;
: Satz << Eigenschaft festlegen ( „Wertordnung“ , Bewertung ( G [ Rangindex ( M )] ) ) ;
Betreff: Wertreihenfolge im JMP-Skript nach einer VariablenDieser Ansatz sollte für das obige Beispiel funktionieren. Mir ist jedoch gerade aufgefallen, dass es fehlschlägt, wenn zwei oder mehr Ebenen genau die gleiche Antwort haben (nur eine der verbundenen Ebenen wird in der Liste dargestellt).
: Satz << Eigenschaft festlegen ( „Wertordnung“ , Bewertung ( Assoziatives Array ( : Antwort , : Satz ) << Werte erhalten ) ) ;