So teilen Sie eine Spalte mit unstrukturierter ZeichenfolgeHallo Experten
Ich möchte die Spalte mit unstrukturierter Zeichenfolge gerne in mehrere Spalten aufteilen. Aber ich schaffe das nicht, weil es zu kompliziert ist.
ich denke daran, per Zeilenumbruch zu teilen, aber ich schaffe es nicht, per Trennzeichen vom Text in die Spalten zu gelangen. Die Alternative besteht darin, den Zeilenumbruch durch alle im Trennzeichen verfügbaren Signale zu ersetzen. Die eine Option besteht darin, Regex (:Spalte 1, "^\R", "#",GLOBALREPLACE) auszuführen, aber das führt zu einem unerwarteten Ergebnis.

Datenexploration und -visualisierungBetreff: So teilen Sie eine Spalte mit unstrukturierter ZeichenfolgeBetreff: So teilen Sie eine Spalte mit unstrukturierter ZeichenfolgeDies erreichen Sie, indem Sie doppelte Zeilenumbrüche (oder JMPs \!N) durch etwas ersetzen (ich habe ¤ verwendet).
Names Default To Here(1);
dt = Open("$DOWNLOADS/example3.jmp");
dt << New Column("Col2", Character, Nominal, Formula(
Substitute(:Column 1, "\!N\!N", "¤")
));

Und dann sind noch ein (oder mehrere) zusätzliche Schritte für die Spaltennamen nötig
Betreff: So teilen Sie eine Spalte mit unstrukturierter ZeichenfolgeIch hatte eine ähnliche Idee: Ersatz verwenden und nach 2x Zeilenumbrüchen suchen.
Um die Spaltennamen richtig zu erhalten, könnte man als Trennzeichen „:“ verwenden, aber:
- ":" wird auch innerhalb der Einträge verwendet
- Das Beispiel enthält ein „:“, aber danach fehlt ein Zeilenumbruch.
Also habe ich die beiden Ansätze kombiniert:
- Suche 2x Zeilenumbruch
- suchen ":"
um die Überschriften zu finden.
Um den Spaltennamen und den Eintrag zu trennen, kann man mit der Einstellung Zusammenhängend die Spalten übereinander stapeln.
Col2 wird nur vorübergehend verwendet und kann daher entweder am Ende gelöscht oder als Transform-Spalte hinzugefügt werden.
Spalten, die über „Text to Columns“ aus einer „Transform Column“ generiert werden, sind die ersten in der Tabelle.
Dies erleichtert das Auswählen und Stapeln. Zählen Sie einfach die neuen Spalten und wählen Sie sie nach Index aus.
Bei der Einstellung „Benachbart“ werden einige Dummy-Spalten hinzugefügt, diese werden im letzten Schritt entfernt.

dt = Open( "$DOWNLOADS/example3.jmp" );
tmpCol = dt << Transform Column ( "split",
Character,
Formula(
Substitute(
Regex(
Substitute( :Column 1, "\!r\!n", "#", "Sample:", "Sample^\!n" ),
"#{2,}(.*?):",
"^\1^",
GLOBALREPLACE
),
"#", "\!r"
)
)
);
before = NItems(dt << get column names());
dt << Text to Columns(
columns (tmpCol),
Delimiters( "^" )
);
newCols = NItems(dt << get column names()) - before;
result = dt << Stack(
columns(
Eval(1::newCols)
),
Number of Series( Eval(newCols/2) ),
Contiguous,
Drop All Other Columns( 1 )
);
// Move column names up
result << Move up;
cols= result << get column names();
cols = Filter each({col}, cols, Contains(col << get name, "split"))
result << Delete Columns(cols);Sieht nicht schön und glatt aus...
Plan B: eine Turingmaschine zum Berechnen der Einträge aufstellen ; )
Betreff: So teilen Sie eine Spalte mit unstrukturierter Zeichenfolgedanke @jthi ! Für „Neue Formelspalte erstellen“ werden Verweise auf die neu erstellten Spalten zurückgegeben :
Seit JMP18 gibt New Formula Column eine Liste der neu generierten Spalten zurück
Text to Columns könnte auch eine Liste mit Referenzen auf die generierten Spalten zurückgeben:
hier ist der Wunsch: Liste der durch Text erstellten Spalten in Spalte speichern
Bitte beachten Sie:
der Workaround mit dem assoziativen Array und der Remove-Operation funktioniert hier nicht - er mischt die Spalten, indem er sie dann "alphabetisch" mit 10 < 2 sortiert - was die Stapeloperation ruiniert.
Betreff: So teilen Sie eine Spalte mit unstrukturierter Zeichenfolgedas ist eine wunderbare Idee.
Betreff: So teilen Sie eine Spalte mit unstrukturierter ZeichenfolgeUnd wenn Sie reguläre Ausdrücke mögen, JSL aber immer noch größtenteils unverständlich finden, können Sie die Spalte neu kodieren, eine Zeichenfolge ersetzen (siehe rotes Dreieck, „Zeichenfolge ersetzen …“) und eine reguläre Ausdrucksersetzung durch ein Sonderzeichen durchführen („%“ ist eins, das ich häufig verwende) und dann die Spalte (Spalten -> Text in Spalten) anhand dieses Zeichens aufteilen.
Dann können Sie wie ein JMP-Superheld wirken, indem Sie Alt-Strg-Umschalt-R mit „Neu kodieren“ und Alt-Strg-Umschalt-S mit „Text in Spalten“ verknüpfen. Das alles erledigen Sie mit nur wenigen Tastenanschlägen.
Betreff: So teilen Sie eine Spalte mit unstrukturierter Zeichenfolge@BHarris, danke für deinen Rat. Übrigens, wie ersetze ich dort einen Zeilenumbruch per Regex durch ein Sonderzeichen?

Betreff: So teilen Sie eine Spalte mit unstrukturierter ZeichenfolgeEin Zeilenumbruch ist in der Regex-Sprache "\n". Suchen Sie also nach "\n" (ohne Anführungszeichen), klicken Sie auf "Reguläre Ausdrücke verwenden" und ersetzen Sie es dann durch "%".