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