如何使用 JSL 脚本在特定列中执行“查找和替换”?你好,
如何通过 JSL 脚本在特定列上重新创建“查找和替换”操作?
例如 - 我想在“计数”列中将“K”替换为“1e3”,将“M”替换为“1e6”
(稍后将其转换为数字类型)。
我没有找到一种不使用循环的简单方法(所以当需要检查很多行时它会很快)

谢谢 :)
自动化和脚本回复:如何使用 JSL 脚本在特定列中执行“查找和替换”?谢谢@Craige_Hales .看起来像是一道很好的挑战题。
回复:如何使用 JSL 脚本在特定列中执行“查找和替换”?多谢 !!回复:如何使用 JSL 脚本在特定列中执行“查找和替换”?@DonMcCormack
很多方法的最大胜利是使用开始/结束数据更新作为@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;