안녕하세요,
어쩌면 내가 여기서 뭘 잘못하고 있는지 알아내는 데 도움을 줄 수 있을 것입니다.
다음과 같은 장난감 데이터 테이블이 있습니다.

다음 스크립트에서 나오는 문자 열 이름 목록을 구체화하는 데 몇 가지 문제가 발생했습니다.
//get unique column names
cols = Current Data Table() << getColumnNames(Character);
//del columns I don't want
DELCOLS = {"Column 5", "Column 6"};
unique_col_names = Associative Array(cols) << Remove(Associative Array(DELCOLS)) << get keys;
//make a pop-up window
nw = New Window( "Set a Value",
<<MODAL></MODAL>
내가 얻는 것은 결과 모달 팝업 창에서 다음과 같습니다.

다음 팝업 창에 다음 내용만 표시하고 싶습니다.

JMP 스크립팅 가이드에서 연관 배열 키와 제거, 제거, 위치 지정 및 포함 함수에 대해 설명하고 있음에도 불구하고 제 문제는 연관 배열에 대한 지식이 부족하여 완전히 이해하는 데 어려움이 있는 것 같습니다. 말이 되네요.
모델 창에서 사용한 결과 목록에 남아 있는 열의 이름을 원래 데이터세트의 사용자가 변경할 수 있는지 확인하고 싶습니다. 따라서 제거하려는 열 이름은 동일하게 유지됩니다. 또한, 데이터 테이블의 컬럼 배열은 동일하지만 연관배열은 값을 오름차순으로 재배열합니다.
이 포럼에 따르면 나는 이미 다음 방법을 사용했는데 JSL 언어를 처음 사용하기 때문에 여기에서 볼 수 없는 것이 있을 것입니다.
- 목록에서 요소 제거 목록에서 요소 제거
- 컬럼번호에서 컬럼명을 얻어서 내가 선택한 컬럼을 목록에 입력하여 사용하게 한다.열 이름에서 열 번호를 얻는 방법은 무엇입니까? (JMP)
위에서 참조한 스크립트가 포함된 장난감 데이터세트 파일을 첨부했습니다.
정말 고마워! 그것은 내 프로젝트에서 훌륭하게 작동했고 Try() 함수도 무엇인지 배웠습니다.
이 문제를 해결하는 방법은 다음과 같습니다.
Names Default To Here( 1 );
//get unique column names
cols = Current Data Table() << getColumnNames( Character, string );
//del columns I don't want
DELCOLS = {"Column 5", "Column 6"};
For( i = 1, i <= N Items( DELCOLS ), i++,
Try( Remove From( cols, Contains( cols, DELCOLS[i] ) ) )
);
unique_col_names = cols;
//make a pop-up window
nw = New Window( "Set a Value",
<<MODAL></MODAL>