如何使用非結構化字串拆分列各位專家大家好
我喜歡將帶有非結構化字串的列拆分為一堆列。但我沒能做到,因為它很複雜。
我的想法是按換行符號分割,但無法透過分隔符號將其從文字轉換為列。另一種方法是用分隔符號中可用的任何訊號替換換行符。一種選擇是運行 Regex ( :Column 1, "^\R", "#",GLOBALREPLACE ),但它顯示出外的結果。

數據探索和視覺化回覆:如何使用非結構化字串拆分列回覆:如何使用非結構化字串拆分列您可以透過替換然後用某些東西替換雙換行符(或 JMP 的 \!N)來獲得這個(我使用 ¤
Names Default To Here(1);
dt = Open("$DOWNLOADS/example3.jmp");
dt << New Column("Col2", Character, Nominal, Formula(
Substitute(:Column 1, "\!N\!N", "¤")
));

然後列名稱需要一個(或更多)額外步驟
回覆:如何使用非結構化字串拆分列我有一個類似的想法:使用替換並蒐索 2x 換行符。
為了獲得正確的列名稱,可以使用“:”作為分隔符,但是:
- 條目中也使用“:”
- 範例有一個「:」 - 但隨後錯過了換行符。
所以我結合了這兩種方法:
- 搜尋 2x 換行符
- 搜尋 ":"
找到標題。
若要分隔列名稱和條目,可以使用設定Contigious將列堆疊在一起。
Col2 只是暫時使用,因此可以在最後將其刪除 - 或新增為轉換列。
透過「轉換列中的文字到列」產生的列是表中的第一個列。
這使得選擇和堆疊它們變得容易。只需計算新列並按索引選擇它們即可。
使用“連續”設置,會添加一些虛擬列,這些虛擬列將在最後一步中刪除。

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);看起來不太漂亮和光滑...
Plan B:設定圖靈機來計算條目; )
回覆:如何使用非結構化字串拆分列謝謝@jthi !對於「建立新公式列」傳回新建立的列的參考:
自 JMP18 起,新公式列傳回新產生的列的列表
文字到列還可以傳回一個列表,其中包含對生成的列的引用:
這是願望: 將文字建立的列清單儲存到列
請注意:
關聯數組和刪除操作的解決方法在這裡不起作用 - 它通過排序然後“按字母順序”使用 10 <2 來打亂列 - 這會破壞堆疊操作。
回覆:如何使用非結構化字串拆分列這是一個很好的想法。
回覆:如何使用非結構化字串拆分列如果您喜歡正規表示式,但仍然發現JSL 大多難以理解,您可以重新編碼該列,並執行字串替換(請參閱紅色三角形,“替換字串...”),並對奇怪的字元(“ %”)執行正規表示式替換是我經常使用的一個),然後在該字元上拆分列(列 -> 文字到列)。
然後,透過將alt-ctrl-shift-r 綁定到“重新編碼”,將alt-ctrl-shift-s 綁定到“文字到列”,您就可以像JMP 超級英雄一樣,只需按幾下按鍵即可完成所有這些操作。
回覆:如何使用非結構化字串拆分列@BHarris感謝您的建議。順便說一句,我如何用正則表達式用那裡的奇怪字元替換換行符?

回覆:如何使用非結構化字串拆分列在正規表示式中,換行符是“\n”。因此,搜尋“\n”(無引號),然後按一下“使用正規表示式”,然後將其替換為“%”。