열을 사용하여 다른 열의 "값 순서"를 지정하는 방법친애하는 JMP 커뮤니티 여러분,
한 열의 숫자 값(정수)을 다른 열의 "값 순서"에 대한 방법으로 사용할 수 있습니까?
정수가 포함된 다른 열에 따라 주문하고 싶은 텍스트 열이 있습니다. 예를 들어, :Text라는 열과 :Level이라는 열이 있습니다.

기본적으로 JMP는 "값 순서" 열 속성의 순서를 다음과 같이 지정합니다.

나는 다음과 같이 주문하는 것을 선호합니다 :

내 간단한 예에서는 :Level 열과 순서가 동일합니다. 물론 이 작업을 수동으로 수행할 수도 있지만 실제 데이터 테이블에는 수동으로 수행하지 않고 대신 열을 사용하여 "값 순서" 속성을 설정하는 수십 개의 항목이 포함된 텍스트 열이 있습니다. :Text 열의
이를 스크립트로 작성하거나 JMP 내 GUI를 통해 수행할 수 있는 방법이 있습니까?
감사해요!,
DS
고급 통계 모델링자동화 및 스크립팅대량 맞춤화Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법여기서 해결책은 고유 키가 필요한 연관 배열을 사용하는 것입니다. 따라서 레벨이 중복된 경우 텍스트 중 일부가 "삭제"됩니다(그리고 기본 순서대로 정렬됩니다).
Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법안녕 !
숫자 날짜 열의 값으로 하나의 열(배치)을 주문하려고 하는데 같은 날 두 개의 서로 다른 배치가 제조되는 경우 문제가 발생합니다.
예를 들어, 왜 이것이 올바르게 주문되지 않습니까?
dt = New Table("table",
Add Rows(10),
Compress File When Saved(1),
New Column("Text",
Character,
"Nominal",
Set Values({"A", "B", "C", "D", "E", "F", "AA", "BB", "CC", "DD", "EE", "FF"})
),
New Column("Level",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 2, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10])
)
);
텍스트 열의 순서는 다음과 같습니다.
텍스트 수준
A 1
비 2
디 3
여4
AA 5
BB 6
CC 7
DD 8
EE 9
FF 10
C 2
마 3
원하는 대신:
텍스트 수준
A 1
비 2
C 2
디 3
마 3
여4
AA 5
BB 6
CC 7
DD 8
EE 9
FF 10
C 2
Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법나는 동의한다, @jthi 솔루션이 가장 좋습니다.어떤 사람들은 JSL을 좋아하지 않습니다.많은 사람들이 행 순서 수준을 인식하지 못합니다.Excel 사용자(일반화 설명 예정)는 행 순서 수준을 기본값으로 사용하고 싶어합니다.따라서 이것이 귀하의 훌륭한 토론 질문에 답변하려는 동기입니다.
Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법안녕하세요. 예. 이제 맞춤 주문 확인란을 선택 취소해야 하는 이유를 알겠습니다. 말이 되네요. jthi가 수행하는 방식의 좋은 점은 데이터 테이블 정렬에 관계없이 :Text 열의 원하는 값 순서를 유지한다는 것입니다.Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법해야 할 일에 대한 설명에 오류가 있었습니다.다음은 Big Class 데이터 테이블을 사용한 예입니다.
- 데이터 테이블을 높이 t 기준으로 정렬했습니다.

- 그런 다음 이름 열의 열 속성으로 이동하여 행 순서 수준을 선택하고 사용자 지정 순서를 선택 취소했습니다.

- 그런 다음 그래프 빌더를 열고 이름 열을 X축으로 드래그했습니다. 보시다시피 X축의 순서는 이름의 행 순서입니다.

Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법안녕 @jthi ,
피드백을 보내주셔서 감사합니다. 예, 이 JSL 코드는 :Text 및 :Level 열의 이상한 배열을 처리한 다음 값 순서를 적절하게 할당할 수 있으므로 정확히 필요한 것입니다.
나는 연관 배열 명령을 많이 탐색하거나 작업한 적이 없지만 분명히 그것에 대해 더 자세히 살펴볼 필요가 있습니다! 매우 훌륭합니다. 단 3줄의 코드만 있으면 됩니다.
감사해요!,
DS
Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법안녕 @txnelson ,
피드백을 보내주셔서 감사합니다. 불행하게도 이 솔루션은 :Text 열에서는 작동하지 않습니다. :Level 열에 따라 테이블을 정렬한 다음 :Text 열의 값 순서에 대해 제안한 대로 "행 순서 수준"을 적용하면 여전히 :Text 열의 알파 순서가 유지됩니다. 즉, AA 여전히 A 뒤에 옵니다.
다른 "문제"는 현재 날짜별로 정렬되어 있는 원본 데이터 테이블의 행을 엉망으로 만든다는 것입니다. :Text 및 :Level 열은 날짜 전체에 분산될 수 있으며 때로는 테이블을 날짜별로 정렬하는 것이 도움이 됩니다. 실제로 큰 문제는 아니지만 데이터 테이블에 액세스하게 될 다른 사용자가 이를 좋아하지 않을 것이라는 것을 알고 있습니다.
감사해요!,
DS
Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법안녕 @ron_horne ,
피드백을 보내주셔서 감사합니다. 저는 Graph Builder에서 파레토와 같은 플롯을 만드는 방법에 대해 잘 알고 있습니다. 여러 번 사용해 보았는데 꽤 도움이 됩니다. 불행히도 저는 데이터 시각화 외에도 데이터 테이블을 사용하여 다른 많은 평가를 수행하고 있으므로 수천 개의 행과 수십 개의 텍스트 옵션이 있는 테이블로 이식 가능하고 확장 가능한 솔루션을 갖는 것이 도움이 될 것입니다. 다른 두 가지 방법은 아직 시도하지 않았지만 시도해 보겠습니다.
감사해요!,
DS
Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법둘 다 @jthi 그리고 @ron_horne 좋은 솔루션을 제공하세요.하지만 이 작업을 수행하는 대화형 방법을 원한다면 해야 할 일은 다음과 같습니다.
- 데이터를 정렬할 열을 기준으로 데이터 테이블을 정렬합니다.
- 정렬에 사용하려는 열의 값 정렬 열 속성으로 이동하여 "행 순서 수준"을 선택합니다.

이제 행 순서 수준을 순서 열로 지정한 열을 사용하면 해당 열에 대한 데이터 테이블의 순서가 결과를 표시하는 순서로 사용됩니다.
Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법안녕 @SDF1
그래프 빌더에서 사용하기만 하면 그림과 같이 축을 다른 축으로 정렬할 수 있습니다. 순위에 대한 통계를 변경할 수도 있습니다. 다른 분석 또는 그래프 플랫폼에서 테스트 또는 사용을 위한 순서를 원하는 경우에는 도움이 되지 않습니다.

대부분의 경우 내가 하는 일은 다른 변수를 기준으로 테이블 요약을 생성하고 정렬하는 것입니다. 거기에서 카테고리를 값 순서에 직접 복사하여 붙여넣습니다. 모두가 아는 것은 아니지만 작동하는 해킹입니다.
론
Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법GUI로 가능한지는 모르겠지만 몇 단계를 거쳐 스크립트를 작성할 수 있습니다.
- 먼저 목록에서 올바르게 정렬된 텍스트 열을 가져옵니다.
- 이전 목록이 포함된 Text 열에 열 속성 추가
다음은 최소한 현재 예제에서 작동할 수 있는 가능한 솔루션 중 하나입니다("디버그" 인쇄를 보려면 로그 창을 엽니다).
Names Default To Here(1);
dt = New Table("table",
Add Rows(10),
Compress File When Saved(1),
New Column("Text",
Character,
"Nominal",
Set Values({"A", "B", "C", "D", "E", "F", "AA", "BB", "CC", "DD"})
),
New Column("Level",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
)
);
//get values from Level and Text into Associative Array
aA_level_text = AssociativeArray(Column(dt, "Level") << Get Values,Column(dt, "Text") << Get Values);
show(aA_level_text); //debug
ordered_level = aA_level_text << Get Values; //Get values (will be ordered by Level)
Show(ordered_level); //debug
Show(Column(dt, "Text") << Get Property("Value Ordering")); //debug
//Add Value Ordering Column Property to Text column
Eval(Eval Expr(
Column(dt, "Text") << Set Property("Value Ordering", Expr(ordered_level));
));
Show(Column(dt, "Text") << Get Property("Value Ordering")); //debug
dt << Clear Column Selection;
Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법알았어, 한번 해볼게
Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법귀하의 경우에는 Ranking()을 사용하여 "재주문"할 수 있습니다.
Names Default To Here(1);
dt = New Table("table",
Add Rows(10),
Compress File When Saved(1),
New Column("Text", Character, "Nominal", Set Values({"FF", "B", "C", "D", "E", "F", "AA", "BB", "CC", "DD", "EE", "A"})),
New Column("Level", Numeric, "Continuous", Format("Best", 12), Set Values([10, 2, 2, 3, 3, 4, 5, 6, 7, 8, 9, 1]))
);
m_text = Column(dt, "Text") << get values;
m_level = Column(dt, "Level") << get values;
orders = Ranking(m_level);
m_text[orders];
Show(Column(dt, "Text") << Get Property("Value Ordering")); //debug
Eval(Eval Expr(Column(dt, "Text") << Set Property("Value Ordering", Expr(m_text[orders]))));
Show(Column(dt, "Text") << Get Property("Value Ordering")); //debugRe: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법효과가 있었어요! 정말 고마워요!
Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법흥미롭네요. 팝업 메뉴에서 서수형 열 "나이"를 선택할 수 없더군요. 왜 그런지 아시는 분 계신가요?
제목: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법비슷한 게시물 중 훌륭한 해결책을 제시하는 글:
연관 배열을 통해 다른 열을 기준으로 값 순서 또는 값 레이블 설정하기
https://community.jmp.com/t5/Discussions/how-to-sort-x-axis-by-another-column-value/mp/442639#M69092 :
요약 + 순위 색인
Re: 열을 사용하여 다른 열의 "값 순서"를 지정하는 방법JMP의 이후 버전에서는 "기타" 옵션을 제공하여 열을 선택할 수 있습니다.