Alle Spaltenfunktionen sollen das Argument `Column("Name")` akzeptieren können, um die Erstellung von Spaltenformeln aus JSL zu vereinfachen.Was hat diesen Wunschwunsch ausgelöst?
Die Benutzeroberfläche von JMP hat mich daran gewöhnt, Spalten auszuwählen und diese in Felder zu ziehen, einschließlich des Formeleditors. Im Hintergrund generieren diese Spaltenlistenfelder Zeichenketten, die den Spaltennamen entsprechen, aber so werden die Elemente in den Dialogfeldern nicht dargestellt. Ich verschiebe die Spalten also manuell.
pauldeen_0-1789654679720.pngpauldeen_0-1789654679720.pngpauldeen_0-1789654679720.png
Das gleiche Verhalten funktioniert in Skripten nicht:
dt = Open( "$SAMPLE_DATA/Cars.jmp" );
ColList = {};
For(i=1, i<=NCols(), i++,
If(Column(i)<
<GETDATATYPE></GETDATATYPE>
<P>Dieses Beispiel erzeugt eine ungültige Liste von Column("Name")-Objekten, die die Funktion Mean() nicht verarbeiten kann. Dies erschwert die Arbeit mit Spaltenformeln für neue Skripter unnötig.</P> <P>Siehe diese Diskussion: <A href="https://community.jmp.com/t5/Discussions/How-to-create-an-average-column-with-JSL-based-on-random-columns/m-p/968140#M110445" target="_blank">https://community.jmp.com/t5/Discussions/How-to-create-an-average-column-with-JSL-based-on-random-columns/mp/968140#M110445</A></P> <P>Siehe Supportfall: 00345202</P> <P><STRONG>Welche Verbesserung würden Sie sich wünschen?</STRONG></P> <P>Erweitern Sie alle Spaltenformelfunktionen so, dass sie Objekte vom Typ Column("Name") akzeptieren und diese intern in den indizierbaren Spaltentyp :"Name"n konvertieren. Dadurch entspricht die Darstellung, obwohl es sich technisch gesehen um ein anderes Objekt handelt, dem UI-Stil beim Einfügen von Spalten.</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pauldeen_1-1789654714335.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="pauldeen_1-1789654714335.png" style="width: 155px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="pauldeen_1-1789654714335.png" style="width: 155px;"><span class="lia-inline-image-display-wrapper" image-alt="pauldeen_1-1789654714335.png" style="width: 155px;"><img src="https://us.v-cdn.net/6038925/uploads/images/117467i4343BA562F3D604F/pauldeen_1-1789654714335.png" role="button" title="pauldeen_1-1789654714335.png" alt="pauldeen_1-1789654714335.png" /></span><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">pauldeen_1-1789654714335.png</SPAN></SPAN><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">pauldeen_1-1789654714335.png</SPAN></SPAN><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">pauldeen_1-1789654714335.png</SPAN></SPAN></P> <P>Alle hier aufgeführten Funktionen sollten so erweitert werden, dass sie den Typ column() akzeptieren.</P> <P><STRONG>Warum ist diese Idee wichtig?</STRONG></P> <P>Dadurch funktionieren JSL und UI logisch gleich, was den Einstieg für neue Skripter erleichtert.</P> <BR /> <BR />
Betreff: Alle Spaltenfunktionen sollen das Argument Column("Name") akzeptieren, um die Erstellung von Spaltenformeln aus JSL zu vereinfachen.Hier ist ein Community-Beitrag über die Unterschiede zwischen Column und As Column:
Column() vs As Column() vs datable:column vs dt:As name("column")
Betrachten Sie Spalte() als ein Objekt mit Eigenschaften wie Wert, Farbe, Spezifikationen usw. Da Column() bedeutet: Gib mir den Wert der aktuellen Zeile - ist dies das, was in Formeln benötigt wird.
Formeln benötigen tatsächlich Als Spalte() , nicht Column().
Wären Sie mit einer Umgehungslösung einverstanden, die Als Spalte() anstelle von Spalte() verwendet?
dt = Open( "$SAMPLE_DATA/Cars.jmp" );
ColList = {};
For(i=1, i<=NCols(), i++,
If(Column(i)<
<GETDATATYPE></GETDATATYPE>
Betreff: Alle Spaltenfunktionen sollen das Argument Column("Name") akzeptieren, um die Erstellung von Spaltenformeln aus JSL zu vereinfachen.Manchmal wird in Formeln die Spalte () verwendet.
Wenn Sie beispielsweise prüfen möchten, ob ein Wert innerhalb der Spezifikation liegt, ist eine recht komplexe Struktur erforderlich, um die Funktion `column()` (diejenige mit den Spalteneigenschaften) nach der Spezifikation zu fragen und den Wert der aktuellen Zeile ( als `column()` ) mit dieser Spezifikation zu vergleichen.
Wenn Spalte() als Alternative zu als Spalte() verwendet wird, funktionieren solche Funktionen nicht mehr.
Andererseits – da die Frage in der Spezifikation enthalten ist – hoffe ich, dass JMP 2027 eine Hilfsfunktion zur Verfügung stellen wird, um solche Berechnungen zu erleichtern.
:folded_hands: ist in spec (value)