안녕,
JMP를 처음 사용하고 많은 도움말을 검색하고 읽었으며 서클에서 돌아다녔습니다. 나는 내가 하는 일이 쉽고 간단하지만 JSL에서 그런 느낌을 받지 못한다고 생각할 것입니다. 더 복잡한 데이터 테이블이 있지만 코드가 작동하도록 하기 위해 테이블을 단순화했습니다. 5개의 열이 있는 테이블이 있고 각 열의 4개에는 제목에 "_Yield"가 있습니다. 13개의 행은 1과 0으로 구성되며 내가 하려는 것은 yield 열에서 1의 첫 번째 발생을 보여주는 각 행에 대한 열을 만드는 것입니다. 열 이름(contain _yield 제외)이 항상 같은 이름을 가지거나 같은 위치에 있지는 않기 때문에 이것이 현명해야 합니다. 나는 yield 열을 보는 방법을 알아냈고 이것을 내가 찾고 있는 값을 찾을 수 있는 행렬로 변환했습니다. 이 값을 열 머리글로 변환할 수 없습니다. 테스트 열은 매트릭스의 위치를 보여주고, 아래 결과 열은 도움말 열에서 무엇을 얻어야 하는지를 보여줍니다.미리 감사드립니다.

dt = 현재 데이터 테이블();
lst = dt << 열 이름 가져오기(문자열);
dt << 열 선택 지우기;
For( i = 1, i <= N Items(lst), i++,
If( 포함( lst[i], "_Yield" ) > 0,
열( dt, lst[i] ) << 세트 선택;
selcols = dt << 선택한 열 가져오기;
));
Mat2 = dt << 행렬로 가져오기(selcols);
DesList = 목록();
for(i = 1, i <= N 행(Mat2), i++,
위치 = Min(Loc(Mat2[i,0]));
삽입(DesList,Pos);
);
dt << 새 열("테스트", 숫자, 연속,<< 값 설정(DesList));
cols = dt << 열 참조 가져오기(dt << 열 이름 가져오기);
dt << 새 열("결과", 수식(If( 포함( 평가 목록( selcols )), 1 ) == 1,
"B_수익률",
If( 포함( 평가 목록( selcols ), 1 ) == 2,
"C_수익률",
If( 포함( 평가 목록( selcols ), 1 ) == 3,
"D_수익률",
If( 포함( 평가 목록( selcols ), 1 ) == 4,
"E_수익률",
"통과하다"
))))
));
values1 = Column(dt, selcols[1]) << 값 가져오기;
NewColName = "도움말";
dt << 새 열(NewColName, 문자);
newColumn = 열(NewColName);
For( j = 1, j <= N Items(values1), j++,
//yield = 목록 상자(selcols, << set selected(2,1), Print("list",yield << 선택, yield << 선택 인덱스 가져오기));
결과 = (삭제 목록[j] >= 1);
if(결과 >= 1,(newcolumn[j]= 선택),
누락(결과), (newColumn[j]= Parse("PASS")));
);