안녕하세요, JMP 팀,
선택한 열의 하위 집합 만 정렬할 수 있도록 하여 열 재정렬 명령을 향상시킬 수 있습니까?
감사해요,
TS
죄송합니다. 이 대화가 계속되는 줄 몰랐고 오늘에서야 커뮤니티 사이트에 돌아왔습니다.
나는 한 일에 동의합니다.
감사해요,
가볍게 두드리기
추가 기능이 커뮤니티의 파일 교환/추가 기능에 게시되었으며 검토 대기 중 상태입니다(2022년 1월 15일 이후).
또한 여기에서 추가 기능을 얻을 수 있어야 합니다. GitHub - 선택한 열 정렬 JMP-Tools Order Selected Columns.jmpaddin 파일을 다운로드하고 설치합니다.
이제 애드인이 준비되었습니다. 몇 가지 테스트를 더 수행한 후 오늘 또는 주말에 추가 기능을 사용하여 JMP 커뮤니티의 토론 영역에 게시물을 작성하도록 노력하겠습니다.
설치 후 새 하위 메뉴가 추가 기능 메뉴에 추가됩니다(Cols 메뉴에 추가할 수 있지만 추가 기능으로 작동시키는 것만으로도 지금은 충분한 작업과 번거로움이 있었습니다).
추가 기능 메뉴:

설정 창:

추가될 수 있는 가능한 것들:
- 더 많은 정렬 옵션(JMP가 이미 제공하는 것과 동일)
- 도구 모음 추가
- 열 메뉴로 이동
- 옵션을 구현한 후 지저분해졌기 때문에 코드 리팩터링
- 이전 열 순서에 대한 더 나은 관리
- 결합 현재 열 순서 및 그룹화 저장 ?
좋습니다. 스크립트가 시작될 때 메뉴를 여는 것이 약간 불필요하다고 생각하기 때문에 해당 애드인에 대한 몇 가지 간단한 "설정" 메뉴를 추가하는 방법을 알아내려고 합니다.
이와 같은 메뉴를 만들 수 있지만 필요한지 확실하지 않습니다.

이미 해당 옵션을 지원하지만 사용자는 애드인 내부의 settings.json 파일에 있는 수정을 수행해야 하므로 변경을 위해 작은 UI가 필요합니다.
@jthi ,
이 질문에 귀하의 탁월한 기술을 적용해 주셔서 대단히 감사합니다.
선택한 열의 열 재정렬 동작과 관련하여 기본값은 정렬된 열을 재정렬하고 다시 그룹화하는 것이며 재정렬된 열을 제자리에 두는 옵션이 있을 것이라고 제안합니다.
최상의,
TS
열이 선택되지 않은 경우 -> 현재 기능이 선택된 열을 사용한다는 데 동의합니다.
선택한 열에서 열 순서를 어떻게 지정해야 한다고 생각하십니까? 선택한 컬럼만을 이용해서 정렬을 해야할지, 아니면 첫 번째 선택된 컬럼 외에 모든 컬럼을 함께 옮겨야 할지(이미 코드를 작성했는데 테스트해봐야겠다). 내가 묻는 것을 설명하는 몇 가지 이미지 :
시작 상황:

선택한 열 내에서만 이름별로 정렬:

함께 그룹화하면서 정렬:

@jthi , 코드 주셔서 감사합니다!나는 그것을 사용할 것이다.
우리 둘 다 이것이 JMP의 기본 기능이어야 한다는 데 동의한다고 생각합니다."Cols -> Reorder Cols -> Reorder By Name"은 Select Duplicate Rows와 같은 다른 기능과 유사하게 작동할 수 있습니다. 여기에서 열이 없는 경우 JMP는 모든 열이 동일한 중복 행을 찾습니다.그러나 열이 선택된 경우 JMP는 해당 열에 대해서만 중복 행을 찾습니다.
@pcarroll1 그룹의 열을 항상 사전순으로 정렬하려면 스크립팅할 수 있어야 합니다.
이 스크립트는 For Each를 사용하기 때문에 JMP16이 필요합니다. 그룹 내에서 알파벳순으로 데이터 테이블의 모든 그룹에 있는 열을 정렬해야 합니다(특정 그룹만 재정렬하려는 경우 재정렬하려는 그룹에 대한 선택 항목을 추가할 수 있음).
Names Default To Here(1);
//Alphabetically order columns in groups JMP16
dt = Current Data Table();
col_groups = dt << Get Column Groups Names("String");
col_list = dt << Get Column Names("String");
For Each({col_group}, col_groups,
cols_in_group = dt << get column group(col_group);
//get index of first column in group
index_of_first = Contains(col_list, cols_in_group[1] << get name);
ordered_cols_in_group = Sort List(cols_in_group);
//fix indices
ordered_cols_in_group = ordered_cols_in_group;
dt << Move Selected Columns(ordered_cols_in_group, After(Column(dt, index_of_first)));
);전에:

후에:

예제 테이블에 대한 스크립트:
New Table("Untitled 3",
Add Rows(0),
New Column("a", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("b", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("x", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("a 2", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("c", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("b 2", Numeric, "Continuous", Format("Best", 12), Set Values([]), Set Display Width(82)),
New Column("z", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("a 3", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("x 2", Numeric, "Continuous", Format("Best", 12), Set Values([])),
Group Columns(:x, 4),
Group Columns(:z, 3)
)이 위시리스트 항목에서 요청한 작업을 수행할 수 있는 추가 기능을 만드는 것은 상당히 쉬울 것입니다. 물론 JMP에 포함되는 것이 더 좋을 것입니다.
나는 한동안 이것을하고 싶었습니다.그룹 내에서 열을 사전순으로 재정렬하면 도움이 됩니다.때때로 열 그룹에 새 열을 추가하지만 수동으로 수행하지 않는 한 이름이 더 이상 정렬되지 않기 때문에 찾기가 문제가 됩니다.