大家好,
我有從另一個表創建的不同數據表,在每個數據表中,它包含相同列名中字符格式的可變長度字符串。 我在下面添加了一些示例。 我試圖從列中刪除字符串的最後 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));
);