大家好,
我有从另一个表创建的不同数据表,在每个数据表中,它包含相同列名中字符格式的可变长度字符串。 我在下面添加了一些示例。 我试图从列中删除字符串的最后 4 个字符,并保留其他所有字符。 最后 4 个字符总是 "DATA", 。 我试图完成 if 语句来链接不同的数据表并使用 Left() 和 Contains() 但我认为我写的方式是错误的。 我希望我能在这个社区得到任何人的帮助,因为我刚开始学习 jmp jsl。
前任:
数据表一
来源
FARAH_DATA
FARAH_DATA
FARAH_DATA
FARAH_DATA
数据表2
来源
MIKE_DATA
MIKE_DATA
MIKE_DATA
这就是我想要的每个数据表的样子;
数据表一
来源
法拉
法拉
法拉
法拉
数据表2
来源
麦克风
麦克风
麦克风
我已附上我的 jsl 如下
dtList = {};
For( i = 1, i <= N Table(), i++,
tempdt = data table(i)<<GET name=""></GET>处理这个的方法很多。 如何从字符串中删除 _DATA 的一些示例
Names Default To Here(1);<BR /><BR />str = "FARAH_DATA";
//Word
Show(Word(1, str, "_"));
//Contains and left/substr
Show(Substr(str, 1, Contains(str, "_", -1) - 1));
Show(Left(str, Contains(str, "_", -1) - 1));
//Substitute
Show(Substitute(str, "_DATA", ""));
//Regex
Show(Regex(str, "_DATA", "", GLOBALREPLACE));
Show(Regex(str, "^(.*?)(_DATA)", "\1"));
与数据表一起使用:
Names Default To Here(1)
dt1 = New Table("Untitled",
Add Rows(4),
New Column("Source",
Character,
"Nominal",
Set Values({"FARAH_DATA", "FARAH_DATA", "FARAH_DATA", "FARAH_DATA"})
)
);
dt2 = New Table("Untitled 2",
Add Rows(3),
New Column("Source",
Character,
"Nominal",
Set Values({"MIKE_DATA", "MIKE_DATA", "MIKE_DATA"})
)
);
dt_list = {dt1, dt2};
//using contains with left
//JMP16, if previous use For-loop
For Each({cur_dt}, dt_list,
Column(cur_dt, "Source") << Set Each Value(Left(:Source, Contains(:Source, "_", -1) - 1));
);