大家好,
我有从另一个表创建的不同数据表,在每个数据表中,它在同一列名称中包含格式为字符的可变长度字符串。 我在下面添加了一些示例。 我试图从列中删除字符串的最后 4 个字符,并保留其他所有内容。 最后 4 个字符始终是“DATA”,. 我尝试完成 if 语句来链接不同的数据表并使用 Left() 和 Contains() 但我认为我编写的方式是错误的。 自从我刚开始学习 jmp jsl 以来,我希望我能得到这个社区中任何人的帮助。
前任:
数据表1
来源
FARAH_数据
FARAH_数据
FARAH_数据
FARAH_数据
数据表2
来源
麦克数据
麦克数据
麦克数据
这就是我想要的每个数据表的样子;
数据表1
来源
法拉赫
法拉赫
法拉赫
法拉赫
数据表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));
);