JSL에서 하위 집합의 열 이름을 지정하는 데 권장되는 형식은 무엇입니까?JSL에서 하위 집합 테이블을 만들 때 다음과 같이 이름 앞에 콜론 문자를 사용하여 열 이름을 가장 간단하게 지정할 수 있습니다. :키 . 그러나 이름에 대시( '-' ) 문자가 있으면 작동하지 않습니다. 그러나 이름 주위에 따옴표를 추가하면 작동한다는 것을 알았습니다. 아래의 전체 스크립트는 두 가지 방법을 모두 보여줍니다. 빅클래스.jmp 대시가 있는 열 이름을 포함하지 않음).
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
scrName = "Col name test script";
dt << New Script( // (use of 'New Script' gets script written to data table.)
scrName,
//---- create subset with StartTime and given FOMs ----
dt = Current Data Table();
dt_subset = dt << Subset(
Output Table( "Subset of Big Class" ),
All Rows,
Columns(
:name, // not in quotes.
:"height", // in quotes -- required if col name contains '-'.
:"weight" // in quotes -- required if col name contains '-'.
);
);
);
// run script to generate graph.
dt << Run Script( scrName );
그리고 원하는 대로 이 스크립트는 다음 이름으로 JMP 테이블에 추가됩니다. 열 이름 테스트 스크립트 . 그리고 JMP 테이블 내에서 해당 스크립트를 실행하면(녹색 화살표를 선택하여) 부분 집합 테이블이 제대로 재생성됩니다. 여태까지는 그런대로 잘됐다.
그러나 해당 스크립트로 이동하여 편집을 시작하려는 경우(스크립트 이름을 두 번 클릭하고 편집기를 열어) 재미있는 일이 발생합니다. 이 경우 스크립트 편집기 내에서 그대로 스크립트를 실행하면 따옴표 붙은 열 이름이 하위 집합 테이블에 추가되지 않습니다.

스크립트를 보면 큰따옴표로 인해 열 이름이 null로 처리되는 것 같습니다. 열로 명세서. (스크립트가 녹색 화살표에서는 제대로 실행되지만 스크립트 편집기 내에서는 실행되지 않는 것이 매우 이상합니다. 내부적으로는 한 가지 방법으로 저장되지만 편집기에서는 다르게 렌더링됩니다.??)
어쨌든 내 질문은 다음과 같습니다. 일반적으로 이름에 특수 문자(예: 대시)를 방지하기 위해 하위 집합 열 이름을 지정하는 권장 방법이 있지만 여전히 스크립트 편집기를 사용하여 스크립트를 개발하고 디버그할 수 있습니까? (나는 실제로 새 스크립트 프로그래밍 방식으로 코딩하므로 이름에 특수 문자가 있는지 미리 알 수 없습니다.) Mac OS에서 JMP 14.3.0을 실행하고 있습니다.
Re: JSL에서 하위 집합에 대한 열 이름을 지정하는 데 권장되는 형식은 무엇입니까?네, 그렇게 하면 일이 잘 풀리는 것 같습니다. 정말 고마워요, 짐!
완전성을 위해 결과는 다음과 같습니다.
먼저 스크립트를 빅클래스.jmp 데이터 테이블:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column("Height / Weight", Formula(:height / :weight));
dt << New Column("Height-Weight", Formula(:height / :weight)); // using '-'.
scrName = "Col name test script";
dt << New Script( // (use of 'New Script' gets script written to data table.)
scrName,
// create subset.
dt = Current Data Table();
dt_subset = dt << Subset(
Output Table( "Subset of Big Class" ),
All Rows,
Columns(
:name,
:Name("height"),
:Name("weight"),
:Name("Height / Weight"),
:Name("Height-Weight")
);
);
);
// run script to create subset.
dt << Run Script( scrName );그런 다음 새로 생성된 스크립트를 빅클래스.jmp :

그리고 이전과 달리 이 창에서 이 스크립트를 실행하면 예상대로 실행됩니다.
Re: JSL에서 하위 집합에 대한 열 이름을 지정하는 데 권장되는 형식은 무엇입니까?특수 문자가 있는 열 이름을 참조하는 적절한 방법은 :Name() 함수를 사용하는 것입니다.
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
dt << new column("Height / Weight", formula(:height / :weight));
colList = dt << get column names();
show( colList );
/*
colList = {name, age, sex, height, weight, Name("Height / Weight")};
*/
dt << Distribution( Continuous Distribution( Column( colList[6] ) ) );
show(:Name("height / weight")[1]);