Verweisen auf eine Spalte in JSLIch bin immer wieder erstaunt, wie viele grundlegende Informationen zu JSL in Tutorials und Internetrecherchen fehlen. Ich bin mir nicht sicher, wie man die Grundlagen dieser Sprache lernen soll, ohne riesige Mengen unnötiger Zusatzinformationen zu durchforsten und am Ende sowieso nicht das zu finden, was benötigt wird. Ich denke, das ist der Grund, warum die Diskussionsforen als Ressource verfügbar sind.
Ich versuche, einfach auf eine Spalte mit einer Datentabelle in JSL zu verweisen.
dt = Open("filepath.jsl");
col = dt:"Column Title/Name";Wenn ich schreibe () wird die Spalte nichts angezeigt, was bedeutet, dass die Referenz nicht referenziert. Die Spalte ist eindeutig mit Daten gefüllt, sie ist nicht leer, habe ich überprüft. Blöder Fehler zu machen, aber ich habe das abgedeckt. Wie gesagt, ich weiß nicht, was falsch ist. Ich dachte, das wäre eine ziemlich grundlegende Sache in JSL, aber ich stelle ständig fest, dass diese "sehr grundlegenden Dinge in JSL" durchfallen und wertvolle Minuten bis Stunden der Fehlerbehebung kosten, wenn ich an der Logik meines Codes arbeiten könnte. Ich neige dazu, mich bei meinem Vorgesetzten über unsere Verwendung dieser Sprache zu beschweren und vorzuschlagen, möglicherweise zu etwas logischerem und gut durchdachterem Programmieren zu wechseln (offensichtlich ist JSL für statistische Zwecke, nicht wirklich für Programmierlogik), wie Python.
. Vielen Dank für Ihre Hilfe.
SkripterstellungBetreff: Verweis auf eine Spalte in JSL[NB: Das meiste davon hatte ich schon früher geschrieben @jthi antwortete und sagte ziemlich dasselbe.]
Erstens, wenn Sie (zumindest die ersten paar Kapitel) des nicht gelesen haben JMP-Skriptleitfaden ( Pdf , falls gewünscht) sollten Sie wirklich.
JMP ist eine Skriptsprache, keine Programmiersprache. Es ist sehr eng mit der Benutzeroberfläche von JMP verbunden und soll die Automatisierung von JMP-Aufgaben ermöglichen. Der Versuch, es genauso zu betrachten wie Python oder andere Sprachen, die keine Benutzeroberfläche steuern, wird zu Frustration führen.
Ich versuche, einfach auf eine Spalte mit einer Datentabelle in JSL zu verweisen.
Ihre Frage ist ein Beispiel dafür. Das Konzept des „Referenzierens einer Spalte“ ist kompliziert, da eine „Spalte“ in verschiedenen Kontexten unterschiedliche Bedeutungen haben kann (z. B. ein Plattformaufruf, das Manipulieren der Eigenschaften einer Spalte, eine Spaltenformel).
Also, was hast du was "col" in deinem Beispiel enthalten? Die in der Spalte enthaltenen Daten? Der Wert einer bestimmten Zeile dieser Spalte?
Oder anders gefragt? Wo wollten Sie "col" verwenden, nachdem Sie es auf den gewünschten Inhalt eingestellt hatten? In einem Plattformaufruf (z. B. Distribution(Y(col)))? Oder irgendwo anders?
Betreff: Verweis auf eine Spalte in JSLWenn ich mich richtig erinnere, dt: "colname" zu verwenden (wie Sie As Column() verwenden würden), erhalten Sie direkten Zugriff auf den aktuellen Wert der aktuellen Row () der Spalte mit dem Namen "colname" in der Datentabelle mit der Referenz dt. Um einen Verweis auf eine Spalte zu erhalten, können Sie Column(dt, "colname") as verwenden @Thierry_S sagte.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("Column Title/Name",
Character,
"Nominal",
Set Values({"a1", "b2", "c3", "d4", ""})
)
);
For each row(dt,
col = dt:"Column Title/Name";
Show(col);
);
Row() = 1;
col = AsColumn(dt, "Column Title/Name");
Show(col);
col = Column(dt, "Column Title/Name");
Show(col);Ich sage definitiv nicht, dass die JSL-Dokumentation am besten ist, aber sie enthält ziemlich viel Material (und eine großartige Community und Unterstützung per E-Mail). Für den Anfang sind dies gute Quellen:
JMP15 - Skriptleitfaden
JMP-Hilfe
Scripting-Index direkt aus JMP
Wenn etwas in der JMP-Hilfe oder im Scripting-Index fehlt oder unklar ist, bin ich mir ziemlich sicher, dass JMP gerne für Verbesserungen sorgen würde.
@Jeff_Perkinson
Betreff: Verweis auf eine Spalte in JSLDie korrekte Syntax lautet: col = Column (dt, "Name")