我想使用“Split On”高級選項“Split Delimiter”=(文本)重新編碼(通過 JSL)列...
沒錯,Recode 是列操作,而不是 JSL 函數。 有一條數據列消息 << Recode,可打開交互式重新編碼編輯器,但沒有任何內容可以自動應用重新編碼規則。 另一方面,字符串函數的集合很豐富,提供了很多幫助。
您能提供原始值和所需的重新編碼結果的示例嗎? 如果您仍然需要更多幫助,這可能會讓我們提出更好的建議。
謝謝馬克
如果我理解得好的話,JSL 中不存在重新編碼功能......
因此,我們無法使用在重新編碼列時建議的紅色三角形選項(拆分、高級等)來手動編寫腳本。
我將使用基本的字符功能......
我認為您需要考慮 JSL 中的所有字符函數來創建自己的公式,並將其保存為新列(重新編碼的值)或使用表達式在不使用腳本的情況下按行計算值。
到目前為止,您的描述太模糊,無法讓任何人提供更具體的建議。
是的,所以你知道它有效。 現在,複製該公式並將其粘貼到此腳本中的“重新編碼表達式”上以完成相同的操作。
Current Data Table() << New Column( "Recoded",
Formula( recode expression )
);
謝謝,但我會避免匹配腳本,因為此重新編碼將在全局腳本中實現,並且我的用戶可以根據要重新編碼的列更改文本分隔符。
這就是為什麼我更喜歡,如果可能的話,使用選項編寫重新編碼函數......
我的建議類似於@馬克貝利。但是,您可以手動創建重新編碼,而不是保存列的公式,但在實際完成重新編碼之前,您可以轉到紅色三角形,然後選擇
腳本==>保存到腳本窗口
它會向你展示票據不需要生成您指定的重新編碼
Current Data Table() << Begin Data Update;
dc1 = New Column( :weight );
dc1 << Set Name( "weight 2 2" );
Current Data Table() << Go to( dc1 );
Current Data Table() << Move Selected Columns( after( :weight ) );
For Each Row(
dc1[] = Match( :weight,
64, 60,
67, 60,
74, 70,
79, 70,
81, 80,
84, 80,
85, 80,
91, 90,
92, 90,
93, 90,
95, 90,
98, 90,
99, 90,
104, 100,
105, 100,
106, 100,
107, 100,
111, 110,
112, 110,
113, 110,
115, 110,
116, 110,
119, 110,
123, 120,
128, 120,
134, 130,
142, 140,
145, 140,
172, 170,
:weight
)
);
Current Data Table() << End Data Update;
嗨,馬克
是的,但結果是匹配公式
如果可能的話,我想使用重新編碼選項來編寫重新編碼腳本
就像是
dt_:var_name << 重新編碼(分割定界符文本(“字符串”))...
我不知道這是否可能。
您是否手動執行任務來驗證結果是否是您想要的? 如果是這樣,您是否使用公式將結果保存在新的數據列中? 如果是這樣,則檢查該公式以了解如何在腳本中完成它。