그래프 빌더에서 변환 범위 지정을 사용하면 변환 열이 로컬 데이터 필터와 같은 플랫폼 컨텍스트에 어떻게 대응하는지 제어할 수 있습니다. 이를 통해 변환 열이 플랫폼과 동일한 행을 참조할 수 있습니다. 범위 지정은 변환 메뉴의 "집계", "분포", "행" 그룹의 항목과 같이 여러 행을 기반으로 계산되는 변환 열에만 적용할 수 있습니다.
변환 열을 생성하기 전에 범위를 적용하려면 열 이름을 마우스 오른쪽 버튼으로 클릭하고 기본 범위를 선택합니다. 기존 변환 열에 다른 범위를 적용하려면 범위 변경을 선택합니다.
다음과 같은 범위 옵션을 선택할 수 있습니다.
테이블
모든 행
제외
"제외됨" 행 상태가 동일한 모든 행
필터
로컬 데이터 필터 상태가 동일한 모든 행(제외 상태도 동일). 이 조건이 기본 범위입니다.
그래프
그룹화 값이 동일한 모든 행(필터, 제외 상태도 동일)
중첩
중첩 값이 동일한 모든 행(그래프, 필터, 제외 상태도 동일)
X
X 값이 동일한 모든 행(중첩, 그래프, 필터, 제외 상태도 동일)
"테이블"을 제외한 나머지 범위는 암시적 변환 변수에 해당합니다. 이러한 변수는 "@"로 시작하고 계산식 편집기와 저장된 플랫폼 스크립트에서 확인할 수 있습니다.
이러한 "@" 변수를 사용하여 그래프 빌더를 스크립팅할 수 있습니다. 예를 들어 @X 변수를 계산의 일부로 사용하거나, 일반적으로 그 사이에 있어야 하는 "중첩" 범위를 생략하고 "그래프"와 "X" 범위를 바로 사용하는 것처럼 일부 범위 수준을 건너뛸 수 있습니다.
다음 JSL 스크립트는 체질량(Body Mass)을 평균 체질량으로 나눈 값을 계산하며, 로컬 데이터 필터를 적용하여 두 종(species)만 표시합니다.
Open( "$SAMPLE_DATA/Penguins.jmp" );
Graph Builder(
Transform Column( "relative mass", Formula( :Body Mass / :"Mean[Body Mass]"n ) ),
Transform Column(
"Mean[Body Mass]",
Formula( Col Mean( :Body Mass, :"@Exclude"n, :"@Filter"n ) )
),
Variables( X( :Species ), Y( :relative mass ), Group X( :Sex ) ),
Elements( Points( X, Y, Legend( 13 ) ) ),
Local Data Filter(
Add Filter(
columns( :Species ),
Where(
:Species == {"Adelie Penguin (Pygoscelis adeliae)",
"Chinstrap penguin (Pygoscelis antarctica)"}
),
Display( :Species, N Items( 3 ), "List Display" )
)
),
SendToReport(
Dispatch( {}, "relative mass", ScaleBox,
{Min( 0.5 ), Max( 1.4 ), Inc( 0.2 ),
Minor Ticks( 0 ), Add Ref Line( 1, "Solid", "Black", "", 1 )}
)
)
);
결과 그래프에는 필터링되지 않은 행의 평균 체질량이 표시됩니다. 테이블의 모든 행을 사용하도록 범위를 변경하려면 Mean[Body Mass] 열을 마우스 오른쪽 버튼으로 클릭한 후 범위 변경 > 테이블을 선택합니다.
그림 4.45 범위 변경