for 루프를 사용하여 수정 번호에 대한 JSL 다중 열 비교 및 출력을 위한 새 열 생성안녕하세요 JSL 전문가, 저는 JSL의 초보자입니다. 여러 열 비교를 수행하고 싶습니다. 열 이름은 Col1, Col2, Col3 등입니다. 나는 이 비교를 위해 For 루프를 사용하고 있으며(전체 스크립트는 아래 참조), 수식에 해당하는 경우(아래 참조) 0 또는 1을 출력합니다. 1. 내가 아는 것은 :Col1을 스크립트 :Col1에 넣으면 스크립트가 아래와 같이 잘 작동한다는 것입니다. 2. 내가 모르는 것은 :Col1을 Column( dt, i )으로 바꾸면 스크립트가 작동하지 않는다는 것입니다. 나는 또한 :Name, :"Name"을 사용해 보았지만 :Col1을 대체하는 데 작동하지 않습니다. 다중 열 비교를 수행하는 방법을 아는 사람이 있습니까? 변경된 부분의 예: 이것은 잘 작동합니다: New Column(Name, Character, "Nominal", Formula(If( 1 > :Col1 >0, 0,1)) 이것은 작동하지 않습니다: New Column(Name, Character, "Nominal", Formula(If( 1 > :Column( dt, i ) >0, 0,1)) 전체 스크립트의 예: dt1 = table1, dt = table2, For( i = 1, i < N Col( dt ) + 1, i++, Name = Column( dt, i ) << get name; If( Contains( Name, "ABCD" ), For( j = 1, j <= N Row( dt1 ), j++, GGG = 열( dt1, "GGGer" )[j]; 새 열( 이름, 문자, "명목", 수식( If( 1 > :Col1 > 0, "0", "Fail" ) ) ); ); ) ); );Re: for 루프를 사용하여 수정 번호에 대한 JSL 다중 열 비교 및 out에 대한 새 열 생성//모든 사진을 요약 테이블에 추가
디렉토리 = 디렉토리 선택();
fileNames = 디렉토리의 파일( 디렉토리 );
summary = 새 테이블( "요약", 새 열( "이름", 문자 ), 새 열( "행", 숫자 ) );
For( iFile = 1, iFile <= N Items( fileNames ), iFile++,
파일이름 = 파일이름[iFile];
If( 다음으로 끝남( 파일 이름, ".JPG" ),
// dt = Open( 디렉토리 || 파일 이름 );
요약 << addrows( 1 );
요약:이름 = 파일 이름;
//요약:행 = N 행( dt );
// 닫기( dt, "nosave" );
);
);
Re: for 루프를 사용하여 수정 번호에 대한 JSL 다중 열 비교 및 out에 대한 새 열 생성안녕하십니까 @스토크스 ,
JSL 커뮤니티에 오신 것을 환영합니다. 커뮤니티는 문제를 해결하는 데 도움을 줄 수 있어야 합니다. 그러나 향후 게시물을 위해 작은 제안을 할 수 있습니다. 코드를 게시할 때 아래 표시된 다음 옵션 중 하나를 사용하여 친절하게 삽입하십시오. 이렇게 하면 코드 형식을 지정하고 커뮤니티 사용자가 코드를 더 쉽게 이해하고 질문에 답하는 데 도움이 됩니다.

이제 문제를 해결했으므로 문제를 해결하는 방법을 살펴보겠습니다.
귀하의 질문을 올바르게 이해했다면 -
1. 데이터 테이블의 열을 매개변수와 어떻게 비교합니까?
2. 열 참조( Col = Column(dt,i); )가 함수 호출에서 열 이름(:Col1)을 직접 대체하지 않는 이유는 무엇입니까?
나는 가능한 한 최선 을 다해 이러한 질문 을 해결 하려고 노력할 것입 니다 . 따라서 답변 에서 언급 하지 않은 것이 있으면 알려 주십시오 .
Clear Globals(); Clear Log();
// Open Sample Data
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Acquire Column Names
ColNames = dt1 << Get Column Names("String");
// Define a searchword and look for it in column names
DesiredColsPos1 = list();
DesiredColsPos2 = List();
KeyWord1 = "age";
for(i = 1 , i <= N Cols(dt1), i++,
If(Contains(ColNames[i],KeyWord1),
Insert Into(DesiredColsPos1,i);
);
);
// Display Result
Show(DesiredColsPos1);
// Alternatively
for(i = 1 , i <= N Cols(dt1), i++,
Col = Column(dt1,i); // This gets a reference for the column
Show(Col);
ColName = Col << Get Name;
If(Contains(ColName,KeyWord1),
Insert Into(DesiredColsPos2,i);
);
);
// Display Result
Show(DesiredColsPos2);