Skript: Entfernen Sie das Präfix der Zeichenfolge und geben Sie die geänderte Spalte in eine Excel-Datei ausHallo allerseits. Ich habe den Rat befolgt bei https://community.jmp.com/t5/Discussions/String-parsing-formula/td-p/51077 und einige andere Referenzen zum Schreiben von Daten in Dateien, die hauptsächlich auf Blocktextdateien anwendbar sind, aber ich fand die
Save Excel File()
Funktion im Scripting-Index. Ich weiß nicht, was der letzte Parameter bedeutet / tut? Es wird nicht erklärt. Das heißt,
Separate Rows for Each Cell Statistic( 1 )
Ist das wichtig? Es schreibt nichts in eine Datei an dem von mir angegebenen Ort, unabhängig davon, ob dieser Parameter vorhanden ist oder nicht.
Hier ist ein grober Überblick über mein Skript:
dt = Current Data Table();
c = Words(:ID, "_");
Write(c);
s = c[2] || "_" || c[3] || "_" || c[4] || "_" || c[5];
Write(s);
s << Save Excel File(
"$DOCUMENTS\temp.xlsx",
Separate Rows for Each Cell Statistic( 1 )
);
Also versuche ich, das Präfix zu entfernen und die verbleibenden vier "Wortblöcke" plus ihre Unterstriche beizubehalten, die ich manuell per Zeichenfolgenverkettung wieder hinzufüge. Sehen https://community.jmp.com/t5/Discussions/string-and-variable-concatenation/td-p/56308 für String-Verkettung "||" Referenz.
Wie auch immer, unter $DOCUMENTS\temp.xlsx wird keine Datei angezeigt.
Auch das, ähm, wie es heißt, Terminal, Fenster, Protokoll, gibt mir den Fehler
Subscript Range in access or evaluation of 'c[2]' , c[/*###*/2]
und ich weiß nicht warum. Als Ergebnis der von mir eingefügten Write()-Anweisungen werden keine Strings oder Spalten ausgegeben.
Im Grunde funktioniert also nichts wie es soll. Platz eins, nehme ich an!
Lassen Sie mich wissen, welche Tipps Sie sich alle ausdenken können.
Prost,
Mike
DatentabelleSkriptingBetreff: Skript: Präfix der Zeichenfolge entfernen und geänderte Spalte in Excel-Datei ausgebenHallo,
Beim Umgang mit Strings arbeite ich eher mit string-spezifischen Funktionen (zB Substitute(), Munger(), Right(), Word());
Daher würde ich in Ihrem Fall die folgende Formel vorschlagen, um den ersten Teil der IDS-Zeichenfolge einschließlich der ersten Instanz des Zeichens "_" zu entfernen:
Substitute( :IDS, Word( 1, :IDS, "_" ) || "_", "" )
Beste,
TS
Betreff: Skript: Präfix der Zeichenfolge entfernen und geänderte Spalte in Excel-Datei ausgebenIch denke, Excel-Datei speichern ist ein Sonderfall für die Categorical Response Analysis Platform Zusätzliche kategoriale Plattformoptionen . Um eine Datentabelle als Excel-Datei zu speichern, können Sie einfach << Save(path) verwenden.
Derzeit versuchen Sie, nur eine Zeichenfolge in einer Excel-Datei zu speichern, die aus der ersten Zeile der Datentabelle erstellt wurde. Je nachdem, wie und was Sie speichern möchten, haben Sie verschiedene Optionen. Im Folgenden werden die Werte der :ID-Spalte durch neue Werte mit den Zeichen vor dem ersten _ ersetzt:
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(3),
Compress File When Saved(1),
New Column("ID", Character, "Nominal", Set Values({"1_2_3_4_5_6", "2_3_4_5_6_7", "3_4_5_6_7_8"}))
);
Wait(1);
dt:ID << Set Each Value(
Substr(:ID, Contains(:ID, "_")+1)
);
dt << Save("$DOCUMENTS\test.xlsx");Sie können auch eine neue Spalte mit den neuen Werten erstellen, was höchstwahrscheinlich der bessere Ansatz ist.
Betreff: Skript: Präfix der Zeichenfolge entfernen und geänderte Spalte in Excel-Datei ausgebenDanke für die Antwort, @Thierry_S ! Ich probiere gerade dein Scriptlet sowie einige andere Dinge aus.
Dies mag für die meisten nach einer supereinfachen Sache klingen, aber ich weiß nicht, wie man die Ausgabe für Debugging-Zwecke am besten visualisiert, wenn es sich um mehr als nur eine Einzelwertvariable handelt, z neue Datentabelle (nur mit JSL) oder die Spalte in das Protokoll ausgeben oder so ähnlich.
Ich erinnere mich nicht, vielleicht habe ich das schon einmal gemacht und zeichne nur eine Lücke, aber ich komme mir irgendwie albern vor, wenn ich danach frage.
Danke noch einmal!
Mike
Betreff: Skript: Präfix der Zeichenfolge entfernen und geänderte Spalte in Excel-Datei ausgebenIm Allgemeinen, wenn Sie eine Funktion haben, die einen Parameter oder eine Variable akzeptiert, führt die Übergabe einer Spalte die Funktion elementweise an die Spalte aus?
Mike
Betreff: Skript: Präfix der Zeichenfolge entfernen und geänderte Spalte in Excel-Datei ausgeben
Im Allgemeinen, wenn Sie eine Funktion haben, die einen Parameter oder eine Variable akzeptiert, führt die Übergabe einer Spalte die Funktion elementweise an die Spalte aus?
Nein. Wenn Sie für jede Zeile einer Datentabelle eine Auswertung benötigen, möchten Sie normalerweise entweder eine Formelspalte in der Datentabelle erstellen oder die or Für jede Reihe() Iterator.
JMP 16 führte die Für jedes() Funktion zum Iterieren über JSL-Datenstrukturen: Listen, assoziative Arrays oder Matrizen.