모두들 안녕,
다른 테이블에서 만든 다른 데이터 테이블이 있습니다. 각 데이터 테이블에는 동일한 열 이름에 문자 형식의 가변 길이 문자열이 포함되어 있습니다. 아래에 몇 가지 예를 추가했습니다. 열에서 문자열의 마지막 4자를 제거하고 나머지는 모두 유지하려고 합니다. 마지막 4자는 항상 "DATA", . 다른 데이터 테이블을 연결하고 Left() 및 Contains()를 사용하여 if 문을 수행하려고 시도했지만 내가 작성한 방식이 잘못된 것 같습니다. 방금 jmp jsl을 배우기 시작한 이후로 이 커뮤니티에서 누구에게나 도움을 받을 수 있기를 바랍니다.
전:
데이터 표 1
원천
FARAH_DATA
FARAH_DATA
FARAH_DATA
FARAH_DATA
데이터 표 2
원천
MIKE_DATA
MIKE_DATA
MIKE_DATA
이것이 내가 원하는 각 데이터 테이블의 모습입니다.
데이터 표 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));
);