고유 항목을 기반으로 N 열의 항목을 단일 열로 결합안녕하세요,
하나의 열로 통합하려는 문자 데이터가있는 N 개의 열이 있습니다. 주어진 행에 대해 많은 열이 비어 있거나 반복되는 / 동일한 값을 포함 할 수 있습니다 (다른 열의 항목과 비교할 때).
나는 Cols -> Utilities -> Columns Combine 아래에 기능이 있음을 알고 있으며 모든 필드가 나란히 있고 구분 된 새 열을 생성합니다. 고유성을 유지하면서이 프로세스를 수행하는 방법에 대한 조언이 필요합니다 (즉, 같은 값을 가진 행에 다른 열이 없으면 해당 열의 값만 추가하십시오)
이상적으로 JSL에서 이것을 스크립팅하는 방법에 대한 지침을 얻고 싶습니다. 그러나 JMP 데이터 테이블 / 함수에서 영리한 (더 지루한) 접근법도 환영합니다!
감사.
N 개의 항목을 고유 한 항목을 기반으로 한 단일 열로 결합Brady_Brady에게 감사합니다 !!
저를 위해 너무 일하십시오 !!N 개의 항목을 고유 한 항목을 기반으로 한 단일 열로 결합고마워요. Ms !!
저는이 솔루션의 유연성을 좋아합니다. 사용되는 시작 및 끝 번호를 지정할 수 있습니다. 순열 수를 줄이기 위해 사전 순으로 정렬을했으면 좋겠어요.
지연된 응답을 드려서 죄송합니다. 처음에는 작동하지 않는 코너 케이스 문제가 있다고 생각했지만 다시 방문한 후에는 문제가 발생하지 않았습니다.
N 개의 항목을 고유 한 항목을 기반으로 한 단일 열로 결합신속한 답변과 솔루션을 제공해 준 Txnelson에게 감사드립니다!
이것은 잘 작동하지만, 내 컬럼 이름은 다소 길다. & 나는 많은 사람들이 수동으로리스트를 지정하지 않기를 선호한다.
<< 컬럼 이름을 가져 와서 저장하십시오.
나는 또한 수퍼 유저 "ms"가 순열의 수를 줄이는 알파벳순으로 엔트리를 정렬하는 방법을 정말 좋아했다 (비록 내가 그것을 요구하지 않았지만)
지연된 응답을 드려서 죄송합니다.
N 개의 항목을 고유 한 항목을 기반으로 한 단일 열로 결합나는 이전의 대답을 선호하지만, 스크립트를 사용하지 않는 사람들에게 매력적 인 포인트 앤 클릭을 통해이를 수행 할 수도 있습니다 (분명히 스크립트를 작성하지 않은 사람들이 있습니다!)
연관 배열 방식과 마찬가지로 결과 열의 값은 최소에서 최대로 정렬됩니다.
1) 원래 열을 선택하고 열 결합 유틸리티를 사용하여 다중 응답 열을 작성하십시오.
2) 새 컬럼을 선택하고 컬럼 유틸리티에 텍스트를 적용하십시오. "인디케이터 만들기"체크 박스를 체크하십시오.
3) 10 개의 새로운 표시기 C 럼을 선택한 후, C 럼 결합 유틸리티를 적용하십시오. "C 럼은 표시기 C 럼"상자를 확인하십시오.
N 개의 항목을 고유 한 항목을 기반으로 한 단일 열로 결합짐의 공식에 대한 대안이 있습니다. 차이점은 고유 한 값 결합 된 문자열은 발생 순서보다는 알파벳순으로 정렬됩니다.
로컬 매개 변수를 설정하여 열 수를 일반화 할 수 있습니다. 엔 .
dt = Current Data Table();
dt << New Column("Combined",
Character,
Formula(
Local({dt = Current Data Table(), N = 4},
Concat Items(Associative Array(dt[Row(), 1 :: N]) << get keys, ",")
)
)
);
(데이터 테이블 행렬 표기법을 사용하므로 JMP 13 이상에서만 사용됩니다)
N 개의 항목을 고유 한 항목을 기반으로 한 단일 열로 결합이 질문을 해결하는 한 가지 방법이 있습니다. 열 목록의 고유 한 값을 결합하는 수식을 만들었습니다. 마지막 열에 수식이 적용된 샘플 데이터 테이블을 첨부했습니다.

아래는 사용 된 공식입니다.
VarList = {"One", "Two", "Three", "Four"};
DataList = {};
CountList = {};
DataValue = "";
For( i = 1, i <= N Items( VarList ), i++,
Insert Into( DataList, As Column( VarList[i] ) );
Insert Into( CountList, 0 );
);
For( i = 1, i <= N Items( VarList ) - 1, i++,
For( k = i + 1, k <= N Items( VarList ), k++,
If( DataList[i] == DataList[k],
CountList[k] = CountList[k] + 1
)
)
);
For( i = 1, i <= N Items( VarList ), i++,
If( CountList[i] == 0 & DataList[i] != "",
DataValue = DataValue || "," || DataList[i]
)
);
DataValue = Substr( DataValue, 2 );