Spaltenumschalter und Graph BuilderHallo,
Ich habe eine Reihe von Spalten, die ich gruppiert habe.
Im Graph Builder habe ich die Konstante der
Zuerst teile ich JSL mit, welche Spalten in der Gruppe enthalten sein sollen und welche Spalte meine erste Spalte sein soll
colList = dttable << get column names( continuous );
col1 = colList[1];
Dies ist der Code und der Fehler, den ich erhalte:
Graph Builder(
Size( 570, 621 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :batch_no ), Y( :col1 ) /*###*/ ),
Elements( Points( X, Y, Legend( 8 ) ) ),
Column Switcher( :col1, {:colList} )
)
Können Sie mir sagen, was ich für die Y-Variable schreiben soll, damit ich mit der ersten Spalte beginnen und dann den Spaltenumschalter hinzufügen kann?
Dank im Voraus
Grundlegende Datenanalyse und ModellierungDatenzugriffVersuchsplanungWindowsBetreff: Spaltenumschalter und Graph BuilderSie geben an
:col1
Der Doppelpunkt teilt JMP mit, dass es in der Datentabelle eine Spalte mit dem Namen „col1“ gibt (siehe Scoping in der JMP-Dokumentation); Col1 ist eine Speichervariable, keine Spalte. Entfernen Sie den Doppelpunkt und Ihr Code sollte funktionieren.
Betreff: Spaltenumschalter und Graph BuilderHallo Jim,
Vielen Dank für Ihre Hilfe.
Ich bekomme jetzt das Diagramm, aber der Spaltenumschalter funktioniert immer noch nicht.
dtrelsplit << Newscript ("graph",
Graph Builder(
Size( 570, 621 ),<BR />
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :batch_no ),
Y(col1),
),
Elements( Points( X, Y, Legend( 8 ) ) ),
Column Switcher(
col1, {colList}
),
),
Column Switcher cannot find specified column col1 in platform script</CODE></PRE>
<P>Dies ist der angezeigte Fehler</P>
<BR />
</LINGO-BODY>
<LINGO-SUB id="lingo-sub-724513" slang="en-US" mode="CREATE">Betreff: Spaltenumschalter und Graph Builder</LINGO-SUB>
<LINGO-BODY id="lingo-body-724513" slang="en-US" mode="CREATE">
<P>Hier sind meine Modifikationen</P>
<PRE><CODE class=" language-jsl">Graph Builder(
Size( 570, 621 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( <SPAN class="lia-emoticons-autosuggestions"><SPAN class="lia-emoticons-search-term">:batch_no</SPAN></SPAN> ), Y( as column(col1) ) ),
Elements( Points( X, Y, Legend( 8 ) ) ),
Column Switcher( col1, colList )
)
;
colList ist eine Liste, daher ist kein zweiter Satz von {} erforderlich
Betreff: Spaltenumschalter und Graph BuilderDanke
Betreff: Spaltenumschalter und Graph BuilderIst JMP strenger geworden?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
colLst = { :Height, :Weight, :Age };
// doesn't work
dt << New Script( "test",
Graph Builder(
Variables( X( :Weight ), Y( :Height ) ),
Elements( Points( X, Y ) ),
Column Switcher( :Height, colLst )
)
);
// does work
dt << New Script( "test2",
Graph Builder(
Variables( X( :Weight ), Y( :Height ) ),
Elements( Points( X, Y ) ),
Column Switcher( :Height, { :Height, :Weight, :Age } )
)
);
// does work
Eval( Eval Expr( dt << New Script( "test3",
Graph Builder(
Variables( X( :Weight ), Y( :Height ) ),
Elements( Points( X, Y ) ),
Column Switcher( :Height, Expr( colLst ) )
)
)));
Betreff: Spaltenumschalter und Graph BuilderAuf welche zwei Versionen von JMP beziehen Sie sich?
Betreff: Spaltenumschalter und Graph BuilderJMP19.
Bearbeiten: Ich könnte nicht ohne Mühe sagen, ob die Variable colList in JMP18 oder früher funktioniert hat. Ich bin überrascht, weil ich mehrere Referenzen zur Verwendung von Variablen gefunden habe, denen Listen zur weiteren Verwendung übergeben werden.
Betreff: Spaltenumschalter und Graph Builder@Ressel ,
Bei der Verwendung einer neu ausgeführten und daher sauberen Instanz von JMP 18 funktionierte das von Ihnen eingefügte Beispielskript für den Fall, von dem Sie annahmen, dass es für Sie in JMP 18 funktionierte, bei mir nicht.
Das Problem liegt an der Isolation, die JMP für das von Ihnen eingefügte Beispielskript bereitstellt, wo es als erste Zeile
Names Default To Here( 1 );
Diese Funktion isoliert die erstellten Variablen, sodass sie nur für die jeweilige Skriptausführung gelten. Daher ist die Variable collist dem Skript nur bei Ausführung bekannt. Wenn das in der Datentabelle gespeicherte eingebettete Skript ausgeführt wird, handelt es sich um eine neue Skriptumgebung, in der die Variable collist nicht definiert ist.
Der Grund, warum Ihre beiden Versionen des Codes, die ordnungsgemäß ausgeführt werden, tatsächlich funktionieren, liegt darin, dass im ersten Fall die Werte im Skript fest codiert sind und im zweiten Fall die
Expr( colLst )
erweitert die Variable colist in fest codierte Werte, bevor der Code ausgeführt wird, wodurch das in die Datentabelle eingebettete Skript zu einer fest codierten Version des Skripts wird.
In Ihrem Fall hat sich JMP 19 gegenüber Version 18 nicht geändert
Betreff: Spaltenumschalter und Graph BuilderAh, ok. Ich nehme an, das ist ein Problem mit dem Namensraum?
Außerdem habe ich nicht behauptet, dass es bei mir in JMP18 funktioniert hat. Ich habe mich gefragt, warum die hier vorgeschlagene und so klar erscheinende Lösung nicht funktioniert hat. Ich habe dann fälschlicherweise vermutet, dass es mit der Entwicklung von JSL zusammenhängen könnte. Das ist nicht der Fall.
Danke für die Klarstellung!
Betreff: Spaltenumschalter und DiagrammgeneratorTolles Gespräch 
Lupe auf den Muttern und Schrauben von JSL ...
Ich habe mich nur gefragt, worin der Unterschied zwischen Variablen() und Column Switcher() besteht.
Variables( ... Y( as column(col1) ) ),
Column Switcher( col1, colList )
Diese hier funktioniert auch:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
cols = dt << get column names( continuous );
col1= cols[1];
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X(col1 ), ),
Elements( bar( X ), ),
Column Switcher( col1, cols )
);
sowie diese hier:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
cols = dt << get column names( continuous, "String" );
col1= cols[1];
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X(Column(col1) ), ),
Elements( bar( X ), ),
Column Switcher( col1, cols )
);
Was nicht funktioniert:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
cols = dt << get column names( continuous, "String" );
col1= cols[1];
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X(col1 ), ),
Elements( bar( X ), ),
Column Switcher( col1, cols )
);
Spaltenumschalter() funktioniert also problemlos mit einem Zeichenkette .
Die Funktion `variablen()` benötigt einen Namen oder eine Spalte (erstellt mit `As Column()` oder `column() `).
Betreff: Spaltenumschalter und Graph Builder@hogi, ist die Bedeutung Ihrer Ergebnisse, dass es sich nicht um ein Umgebungs- oder Namensraumproblem handelt, sondern um etwas anderes?
Betreff: Spaltenumschalter und Graph BuilderNein, das Problem mit den Tabellenskripten ist ein Namespace-Problem, wie @txnelson erklärt hat.
Zeichenfolge vs. Name vs. Spalte ist einfach etwas anderes, worüber man etwas lernen kann.