데이터 필터/로컬 데이터 필터를 수평으로 배열할 수 있나요? (UI 변경)안녕하세요 여러분,
JMP에서 데이터 필터를 사용하고 있는데, 필터가 10개가 넘는 경우가 많습니다. 지금은 모든 필터가 하나의 긴 목록에 세로로 표시되어 있어서 필터를 적용하기 위해 아래로 스크롤해야 하는 경우가 많은데, 정말 불편합니다.
일부 필터를 드롭다운을 세로로 길게 쌓는 대신 가로로 행으로 표시할 수 있도록 데이터 필터 UI를 사용자 지정할 수 있을까요?
미리 안내해 주시면 감사하겠습니다!
자동화 및 스크립팅기본 데이터 분석 및 모델링Re: 데이터 필터/로컬 데이터 필터를 수평으로 배열할 수 있나요? (UI 변경)여러 데이터 필터를 사용하면 최소한 재현할 수 있을 것 같습니다. 데이터 필터를 두 열로 정렬할 수 있나요? 디스플레이 상자를 여러 개 조작하는 방법으로도 가능할 수 있지만, 저는 시도해 보지 않았습니다(저는 이런 경우 사용자 지정 데이터 필터를 사용합니다).
Re: 데이터 필터/로컬 데이터 필터를 수평으로 배열할 수 있나요? (UI 변경)
답변 감사합니다. 이상적으로는 여러 필터가 아닌 단일 데이터 필터를 사용하여 이 작업을 수행할 수 있어야 합니다. 데이터 필터의 주요 장점은 조건부 필터링을 적용할 수 있다는 점입니다. 여러 필터를 사용하는 것도 하나의 해결책이 될 수 있지만, 조건부 필터링을 구현하기 위해 내부 필터에 컨텍스트를 전달하는 것이 간단할지 확신할 수 없습니다. 게다가 UI도 매우 보기 좋지 않을 것입니다.
또한 사용자 정의 데이터 필터(ComboBox에서 테스트)에 몇 가지 제한 사항이 있음을 발견했습니다.
- UI 문제 : 열 값이 너무 크면 드롭다운이 너무 길어지고 사용하기 어려워집니다. 긴 값이 하나라도 있는 경우입니다. (드롭다운으로 표시하기 전에 데이터를 자르거나 필터링하는 데 더 많은 작업이 필요합니다. (데이터 필터링보다 작업이 더 많고 속도가 더 느립니다.))
- 성능 문제 : 수천 개의 레코드를 표시하는 속도가 매우 느립니다. 여러 가지 방법(예: 요약을 통해 고유 값을 얻거나 해싱을 사용하여 고유 열 값을 식별하는 방법)을 시도했지만 모두 효과가 없었습니다.
- 조건부 필터링의 복잡성 : 드롭다운이 많은 경우 조건부 필터링을 구현하려면 상당한 양의 코드를 작성해야 하며, 이는 금세 번거로워집니다.
Re: 데이터 필터/로컬 데이터 필터를 수평으로 배열할 수 있나요? (UI 변경)답변해 주셔서 감사합니다.
조건에 따라 콤보박스에 데이터 테이블의 열 값을 표시하는 예제 코드가 있나요?
Re: 데이터 필터/로컬 데이터 필터를 수평으로 배열할 수 있나요? (UI 변경)약간 다른 접근 방식:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Size( 437, 787 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Add Filter(
columns( :sex, :height, :weight )
)
)
);
Current Report()["Local Data Filter", List Box( 6 )] << set Horizontal( 1 );
Current Report()[ List Box( 4 )] << set Horizontal( 0 );

Re: 데이터 필터/로컬 데이터 필터를 수평으로 배열할 수 있나요? (UI 변경)무엇을 하려고 하시나요? 어떤 조건이 있나요? 어떤 순서로 조건을 적용해야 하나요? 순서대로 적용해야 하나요, 아니면 건너뛸 수 있나요? 기본 테이블(새 열/선택 항목)을 수정할 수 있나요? 필터는 언제 적용되나요(즉시/버튼을 누를 때)? << Select Where with restrict는 아마도 꽤 간단한 옵션일 것입니다.
로컬 데이터 필터는 콤보 상자(또는 유사한 선택기)를 사용할 수 있습니다.
Names Default To Here(1);
colcount = 3;
dt = Open("$SAMPLE_DATA/Car Poll.jmp");
dist = dt << Distribution(
Nominal Distribution(Column(:country)),
Local Data Filter(
Conditional,
Add Filter(
columns(:country, :size, :type),
Display(:country, N Items(3), "Single Category Display"),
Display(:size, N Items(3), "Single Category Display"),
Display(:type, N Items(3), "Single Category Display")
)
)
);
ldf_ob = (Report(dist) << Top Parent)[Outline Box("Local Data Filter")];
lub = ldf_ob[LineupBox(2)];
lub << N Col(colcount);
For(i = 1, i <= colcount, i++,
lub << Prepend(Spacer Box(Size(200, 0)));
);
Write();
Re: 데이터 필터/로컬 데이터 필터를 수평으로 배열할 수 있나요? (UI 변경)그래프 빌더 없이도 작동할 것 같나요? 그래프 빌더를 제거하면 가로 방향으로 원하는 대로 표시할 수 있을까요?
Re: 데이터 필터/로컬 데이터 필터를 수평으로 배열할 수 있나요? (UI 변경)모든 목록 상자에는 수평(0/1) 플래그가 있습니다.
플래그만 바꾸면 모든 세로 표시 객체 목록을 가로 표시 목록으로 바꿀 수 있습니다.
다음은 수평 모드를 사용한 순수 데이터 필터의 예입니다(유용한지는 모르겠습니다).
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
win = new window("test", dt << data Filter(
Add Filter(
columns( :height, :countries visited, :family cars )
)
));
win["Data Filter",ListBox(7)] << set horizontal(1)