JSL : 열 수준에 체크박스 사용안녕하세요,
당신이 잘 지내길 바랍니다.
JMP의 체크박스 스크립트에 대해 질문이 있습니다.
"강도" 변수가 있는 데이터 세트가 있고 데이터 세트의 모든 강점을 나타내는 확인란에 따라 데이터 세트가 설정된 경우 하위 세트를 만들고 싶습니다. 목표는 사용자가 체크박스에서 관심 있는 강점을 확인하고 체크박스에 체크된 강점에 따라 데이터 세트의 행이 선택되는 것입니다. 데이터 세트에 따라 강점이 동일하게 필요하지 않기 때문에 열에서 고유한 강점 값을 "추출"한 다음 확인란에서 선택하기 위해 확인란에 강점을 표시하는 것이 가능한지 궁금합니다. 관심의 강점. 나는 가능한 모든 장점을 가지고 모든 데이터 세트를 분석하기 위해 가능한 한 일반적인 스크립트를 갖고 싶습니다.
정말 감사드리고 좋은 하루 보내세요,
여자 이름
자동화 및 스크립팅Re: JSL: 열 수준에 체크박스를 사용하세요.다시 한번 안녕하세요.
마지막 질문이 있습니다. 확인란에서 선택한 강점에 따라 각 하위 집합의 이름을 지정하도록 코드를 어떻게 수정할 수 있습니까?
정말 감사드리고 좋은 하루 보내세요,
여자 이름
Re: JSL: 열 수준에 체크박스를 사용하세요.문제 없다 !
매우 감사합니다 !
정말 좋은 하루 보내세요,
여자 이름
Re: JSL: 열 수준에 체크박스를 사용하세요.
하위 집합이 dt2 변수에 저장되어 있습니까?
dt2 변수를 정의한 경우에만 
다음을 수행할 수 있습니다.
dt2 = dt << subset(
selected rows(1),
selected columns only(0)
);
데이터 세트의 하위 집합을 닫거나 숨기는 명령이 있습니까?
방금 만들었기 때문에 닫고 싶지 않다고 가정합니다. 하지만 사용자가 볼 수 없도록 하려면 보이지 않게 할 수 있습니다.
dt2 = dt << subset( invisible,
selected rows(1),
selected columns only(0)
);
이미 Jmp에서 데이터세트를 열었다면 어떻게 정의할 수 있나요? dt 변하기 쉬운
dt 변수를 현재 열려 있는 테이블에 연결할 수 있습니다.
dt = current data table();
또는 여러 테이블이 열려 있는 경우 테이블을 참조하여 다음을 수행합니다.
dt = data table("strength data");
마지막으로, 묻지 않았지만 궁금해할 수도 있는 질문입니다.사용자가 하위 집합을 생성하기 위해 버튼을 클릭한 후 확인란이 포함된 창을 닫으려면 다음 줄을 끝에 추가하면 됩니다. doSubset 기능:
cr = current report();
cr << close window;
행운을 빌어요.
Re: JSL: 열 수준에 체크박스를 사용하세요.매우 감사합니다 ! 하위 집합이 dt2 변수에 저장되어 있습니까?
Re: JSL: 열 수준에 체크박스를 사용하세요.매우 감사합니다 !
마지막 질문 두 개:
- 데이터 세트의 하위 집합을 닫거나 숨기는 명령이 있습니까?
- 이미 Jmp에서 데이터세트를 열었다면 어떻게 정의할 수 있나요? dt 변하기 쉬운?
정말 감사드리고 좋은 하루 보내세요,
여자 이름
Re: JSL: 열 수준에 체크박스를 사용하세요.'foreach'는 버전 16의 새로운 기능입니다. 이전 버전이 있는 경우 보다 전통적인 for-loop를 사용할 수 있습니다.
for (i=1,i<=nitems(selected),i++,
rows = dt << select where(:Strength==selected[i],
current selection("extend")
);
);Re: JSL: 열 수준에 체크박스를 사용하세요.안녕하세요 David, 도움을 주셔서 정말 감사합니다!
그러나 코드가 실행되면 다음과 같은 오류가 발생합니다.

어떻게 해결할 수 있나요?
정말 감사드리고 좋은 하루 보내세요,
여자 이름
Re: JSL: 열 수준에 체크박스를 사용하세요.대체 예:
Names Default to Here( 1 );
// mock up data set with Strength
dt = New Table( "Strength",
New Column( "Strength", "Character", "Nominal",
Values( {"Intelligent", "Innovative", "Initiative", "Introvert", "Intelligent",
"Innovative", "Initiative", "Introvert", "Intelligent", "Innovative",
"Initiative", "Introvert"} )
)
);
// get unique values from the strength column
summarize(dt,levels=by(:strength));
// construct a window containing checkboxes
NewWindow("Selection",
BorderBox(top(20),bottom(20),left(20),right(20),
VListBox(
TextBox("Select values:"),
here:cb = CheckBox(levels),
SpacerBox(size(0,20)),
ButtonBox("Create Subset",doSubset())
)
)
);
// define function to perform when button is cliccked
doSubset = function({},{default local},
dt = current data table();
dt << clear select;
// get user selections
selected = here:cb << get selected;
// iterate over each of the selected values
// and select the associated rows
for each( {selection},selected,
rows = dt << select where(:Strength==selection,
current selection("extend")
);
);
// create a subset table
dt << subset(
selected rows(1),
selected columns only(0)
);
dt << clear select;
);
Re: JSL: 열 수준에 체크박스를 사용하세요.이 예에서는 작동할 수 있는 접근 방식을 보여줍니다.
Names Default to Here( 1 );
// mock up data set with Strength
dt = New Table( "Strength",
New Column( "Strength", "Character", "Nominal",
Values( {"Intelligent", "Innovative", "Initiative", "Introvert", "Intelligent",
"Innovative", "Initiative", "Introvert", "Intelligent", "Innovative",
"Initiative", "Introvert"} )
)
);
// present user with choices
choice = Associative Array( :Strength ) << Get Keys;
New Window( "Choose Strengths",
Outline Box( "Pick Your Strengths from the Choices Below",
Panel Box( "Strengths",
Check Box( choice,
<< Set Function(
Function( { me, index }, { Default Local },
selection = me << Get Selected;
n = N Items( selection );
dt << Clear Select;
If(
n == 1,
Eval(
Substitute(
Expr( dt << Select Where( :Strength == sss ) ),
Expr( sss ), Name Expr( selection[1] )
)
),
n > 0,
sel expr = Expr( Or() );
For( i = 1, i <= n, i++,
equality = Substitute(
Expr( :Strength == ccc ),
Expr( ccc ), selection[i]
);
Insert Into( sel expr, Name Expr( equality ) );
);
Eval(
Substitute(
Expr( dt << Select Where( eee ) ),
Expr( eee ), Name Expr( sel expr )
)
);
);
);
)
)
)
)
);