Stellen wir uns vor, wir öffnen towns.jmp.
Wie könnte ich den Namen (Wortspiel beabsichtigt) von „Städten“ als Einträge für eine neue Variable erhalten, sagen wir „MY_NAME“.
Die zukünftige Variable „MY_NAME“ enthält also mehrere Instanzen von „cities“. Es muss naturgemäß ein Zeichen sein und „MY_NAME“ ist keine Variable, sondern eine Konstante.
Wie auch immer, irgendeine Idee, wie man das macht?
Ich weiß, dass es eine Dateifunktion gibt. NAME ERHALTEN. Allerdings habe ich es bisher noch nicht geschafft, die Einträge tatsächlich erfolgreich in MY_NAME zu speichern.
Dank im Voraus,
immer noch Neuling
Und um zu veranschaulichen, dass es in JMP normalerweise viele Möglichkeiten gibt, sich einer Lösung zu nähern, finden Sie hier eine Variation davon @Jeff_Perkinson Beispiel
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
dtname = dt << get name();
dt << New Column( "Data Table Name", character, set each value( dtname ) );
Ich glaube, wir haben eine Begriffsverwirrung. In einer JMP-Datentabelle nennen wir sie Säulen , keine Felder oder Variablen (oder Konstanten). Als Sie also fragten, wie man ein erstellt Variable Mit „Städte“ wurde angenommen, dass Sie eine JSL-Variable meinten.
Nun scheint es, dass Sie in Ihrer Datentabelle wirklich eine Spalte mit dem Namen der Datentabelle in jeder Zeile wünschen.
Du hast es schon gesehen, danke an @txnelson , dass die < Die Nachricht gibt Ihnen den Namen der Datentabelle.
Jetzt müssen Sie mithilfe von eine neue Spalte in Ihrer Datentabelle erstellen < Nachricht. Innerhalb von New Column() können Sie Set Values() verwenden, um die Werte für jede Zeile festzulegen.
Jetzt brauchen wir nur noch eine Werteliste. Wir können das mit dem bekommen Wiederholen() Funktion.
Das Ganze sieht so aus:
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
dtname = dt << get name();
dtname_list = Repeat( {dtname}, N Row( dt ) );
dt << New Column( "Data Table Name", character, set values( dtname_list ) );
Es gibt andere Möglichkeiten, Werte in eine Spalte zu übertragen. Wir könnten eine Formel verwenden, bei der die „Formel“ nur eine konstante Zeichenfolge ist, aber die Syntax davon in JSL wird etwas verwirrend, da wir uns damit befassen müssen, wann JSL-Ausdrücke ausgewertet werden (denken Sie an Makro-Anführungszeichen in SAS; das ist nicht der Fall). Ich möchte, dass jemand Neues anfängt.)
Abgesehen davon gibt es nicht viele Fälle, in denen Sie den Namen der Datentabelle in allen Zeilen der Datentabelle benötigen, da JMP solche Spalten in den Fällen erstellt, in denen sie praktisch sind. Zum Beispiel wann Verketten von Datentabellen gibt es eine Option zum Erstellen einer Spalte mit dem Namen der Tabelle, aus der jede Zeile stammt.

Andere Befehle zur Tabellenbearbeitung verfügen über ähnliche Optionen. Vielleicht können Sie uns also mitteilen, was Sie tun möchten, damit Sie das Gefühl haben, dass Sie diese Kolumne benötigen, und wir können Ihnen möglicherweise noch weiter helfen.
Dieser Code fügt den Namen der Datentabelle in eine JSL-Variable ein
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/cities.jmp" );
MY_NAME = dt << get name;
Show( MY_NAME );