如何使用 JSL 腳本在特定列中執行「尋找和取代」?你好,
如何透過 JSL 腳本在特定列上重新建立「尋找和取代」操作?
例如 - 我想在“計數”列中將“K”替換為“1e3”,將“M”替換為“1e6”
(稍後將其轉換為數字類型)。
我沒有找到一種不使用循環的簡單方法(這樣當需要檢查許多行時它會很快)

謝謝 :)
自動化和腳本編寫回覆:如何使用 JSL 腳本在特定列中執行「尋找和取代」?謝謝@Craige_Hales 。看起來像是一個好的挑戰問題的材料。
回覆:如何使用 JSL 腳本在特定列中執行「尋找和取代」?多謝! !回覆:如何使用 JSL 腳本在特定列中執行「尋找和取代」?@唐麥考馬克
您可以執行此操作的許多方法的最大勝利將是使用開始/結束資料更新作為@jthi顯示。 這是另一種方法:
dt = Open( "$sample_data/big class.jmp" );
dt << Begin Data Update;
For Each Row( dt,
dt:name = Substitute( dt:name,
"A", "a",
"E", "e",
"I", "i",
"O", "o",
"U", "u"
)
);
dt << End Data Update;
Lower case vowels.Lower case vowels.小寫元音。
回覆:如何使用 JSL 腳本在特定列中執行「尋找和取代」?我認為 Recode 可以做到這一點:


其他方法是使用某種列來建立新列:
conversionAa = ["K" => "1e3", "M" => "1e6"];
If(Contains(conversionAa, Right(:Count, 1)),
Substitute(:Count, Right(:Count,1), conversionAa[Right(:Count, 1)])
);
我的建議是使用 Recode,如果您需要腳本,可以從 Recode 平台取得:
Names Default To Here(1);
dt = Data Table("Untitled");
dt << Begin Data Update;
col1 = dt << New Column(dt:Count);
col1 << Set Name("Count 2");
dt << Move Selected Columns({col1}, after(dt:Count));
dt << Recode Column(
dt:Count,
{Substitute(_rcNow, "K", "1e3"), Substitute(_rcNow, "M", "1e6")},
Target Column(col1)
);
dt << End Data Update;