我想使用“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 << 重新编码(分割定界符文本(“字符串”))...
我不知道这是否可能。
您是否手动执行任务来验证结果是否是您想要的? 如果是这样,您是否使用公式将结果保存在新的数据列中? 如果是这样,则检查该公式以了解如何在脚本中完成它。