이를 수행하는 몇 가지 방법이 있습니다.그러나 아래 예는 실제로 기본 JMP 기능을 기반으로 하므로 도움말 풀다운 메뉴에서 사용할 수 있는 JMP 설명서 라이브러리에서 JMP 검색 및 JMP 사용 문서를 읽어 보시기 바랍니다.
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Score Category",
character,
formula(
If(
:Score < .6, "0.50-0.59",
:Score < .8, "0.60-0.79",
:Score < .9, "0.80-0.89",
"0.90-1.00",
)
)
);
dtSum = dt << Summary(
Group( :Group, :Score Category ),
Sum( :Count ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
dtSum << delete columns( :N Rows );
dtSum:Name( "Sum(Count)" ) << set name( "Total_Count" );
// or
dt:score << set property(
"value labels",
{0.5 <= "0.50-0.59" < 0.6, 0.6 <= "0.60-0.79" < 0.8, 0.8 <= "0.80-0.89" < 0.9, 0.9
<= "0.90-1.00" <= 1}
);
dtSum = dt << Summary(
Group( :Group, :Score ),
Sum( :Count ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
dtSum << delete columns( :N Rows );
dtSum:Name( "Sum(Count)" ) << set name( "Total_Count" );이에 대한 스크립트를 캡처하기 위해 대화식 접근 방식을 사용합니다. 먼저 데이터 테이블부터 시작하겠습니다.

나는 그것이 필요하지 않기 때문에 카운트 오프를 남겼지만 거기에 있어도 아프지 않을 것입니다.
Score 열을 선택한 다음 Cols, Utilities, Make Binning Formula로 이동했습니다.

오프셋을 0.5로 설정하고 빈 너비를 0.1로 설정합니다.

새 열(Score Binned)을 마우스 오른쪽 버튼으로 클릭하고 열 속성 복사:

그런 다음 새 스크립트 창을 열고 붙여넣기(ctrl-V)하면 다음과 같은 JSL이 생성됩니다.
Add Column Properties(
Value Labels(
{-0.5 = "-0.5 — -0.4", -0.4 = "-0.4 — -0.3", -0.3 = "-0.3 — -0.2", -0.2 =
"-0.2 — -0.1", -0.1 = "-0.1 — 0", 0 = "0 — 0.1", 0.1 = "0.1 — 0.2", 0.2 =
"0.2 — 0.3", 0.3 = "0.3 — 0.4", 0.4 = "0.4 — 0.5", 0.5 = "0.5 — 0.6", 0.6 =
"0.6 — 0.7", 0.7 = "0.7 — 0.8", 0.8 = "0.8 — 0.9", 0.9 = "0.9 — 1", 1 =
"1 — 1.1", 1.1 = "1.1 — 1.2", 1.2 = "1.2 — 1.3", 1.3 = "1.3 — 1.4", 1.4 =
"1.4 — 1.5", 1.5 = "1.5 — 1.6", 1.6 = "1.6 — 1.7", 1.7 = "1.7 — 1.8", 1.8 =
"1.8 — 1.9", 1.9 = "1.9 — 2"}
),
Use Value Labels( 1 ),
Formula( 0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 ) )
)여기에는 두 가지가 있습니다. 0.5 미만(설명에 존재하지 않음) 또는 1보다 큰 점수는 신경 쓰지 않으므로 속성을 약간 변경하고 원하는 것과 일치하도록 레이블 이름을 편집할 수 있습니다. 또한 점수가 정확히 1인 극단적인 경우를 캡처하기 위해 If 문을 추가했습니다.
Add Column Properties(
Value Labels(
{0.5 = "0.5 — 0.59", 0.6 = "0.6 — 0.69", 0.7 = "0.7 — 0.79", 0.8 = "0.8 — 0.89", 0.9 =
"0.9 — 1"}
),
Use Value Labels( 1 ),
Formula(
If(
(0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )) == 1, 0.9,
0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )
)
)
);(그런데 이러한 레이블은 기술적으로 정확하지 않습니다. 0.599는 0.5에서 0.59 사이로 레이블이 지정되기 때문입니다.)
이 스니펫 주위에 일부 코드를 래핑하여 재사용 가능하도록 만들 수 있습니다. 여기서 현재 데이터 테이블을 사용하고 Score Binned라는 새 열을 추가하고 해당 열에 다음 속성을 추가합니다.
dt = Current Data Table();
dt << New Column("Score Binned", Character);
dt:"Score Binned"n << Add Column Properties(
Value Labels(
{0.5 = "0.5 — 0.59", 0.6 = "0.6 — 0.69", 0.7 = "0.7 — 0.79", 0.8 = "0.8 — 0.89", 0.9 =
"0.9 — 1"}
),
Use Value Labels( 1 ),
Formula(
If(
(0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )) == 1, 0.9,
0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )
)
)
);이제 다시 테이블로 돌아가 테이블 > 요약을 선택하면 원하는 위치로 이동할 수 있습니다. 우리는 Group과 Score Binned를 그룹에 넣습니다. 이것이 실제로 필요한 전부입니다.


이제 N 행이 우리가 원하는 것입니다. 이름이 잘못되었으므로 왼쪽의 "Source"라는 단어를 두 번 클릭하고 테이블 생성 스크립트를 복사하고 명명된 테이블 참조를 작업 테이블인 "dt"로 교체하고 변수 "summ"에서 새 테이블을 포착합니다.

dt = Current Data Table();
dt << New Column("Score Binned", Character);
dt:"Score Binned"n << Add Column Properties(
Value Labels(
{0.5 = "0.5 — 0.59", 0.6 = "0.6 — 0.69", 0.7 = "0.7 — 0.79", 0.8 = "0.8 — 0.89", 0.9 =
"0.9 — 1"}
),
Use Value Labels( 1 ),
Formula(
If(
(0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )) == 1, 0.9,
0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )
)
)
);
summ = dt << Summary(
Group( :Group, :Score Binned ),
Freq( "None" ),
Weight( "None" )
);마지막으로 원하는 대로 N 행의 이름을 "Total_Count"로 바꿉니다.
dt = Current Data Table();
dt << New Column("Score Binned", Character);
dt:"Score Binned"n << Add Column Properties(
Value Labels(
{0.5 = "0.5 — 0.59", 0.6 = "0.6 — 0.69", 0.7 = "0.7 — 0.79", 0.8 = "0.8 — 0.89", 0.9 =
"0.9 — 1"}
),
Use Value Labels( 1 ),
Formula(
If(
(0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )) == 1, 0.9,
0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )
)
)
);
summ = dt << Summary(
Group( :Group, :Score Binned ),
Freq( "None" ),
Weight( "None" )
);
summ:"N Rows"n << Set Name("Total_Count");이제 요약 테이블을 닫고 원본 테이블에서 Score Binned 열을 삭제하고 스크립트를 테스트합니다.

다시 최종 JSL:
dt = Current Data Table();
dt << New Column("Score Binned", Character);
dt:"Score Binned"n << Add Column Properties(
Value Labels(
{0.5 = "0.5 — 0.59", 0.6 = "0.6 — 0.69", 0.7 = "0.7 — 0.79", 0.8 = "0.8 — 0.89", 0.9 =
"0.9 — 1"}
),
Use Value Labels( 1 ),
Formula(
If(
(0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )) == 1, 0.9,
0.5 + 0.1 * Floor( (:Score - 0.5) / 0.1 )
)
)
);
summ = dt << Summary(
Group( :Group, :Score Binned ),
Freq( "None" ),
Weight( "None" )
);
summ:"N Rows"n << Set Name("Total_Count");첨부된 데이터로 테스트했는데 문자 그대로 방금 확인했습니다 :flushed_face:
