JMP 15의 데이터 테이블에서 중복 제거모두들 안녕,
지정된 열을 기반으로 테이블에서 중복된 값을 제거하려는 스크립트가 하나 있습니다. 다음 코드 조각은 중복을 제거하는 데 사용되며 JMP 14에서 잘 작동합니다.
dt << Select duplicate rows( Match( :name ) );
selected = dt << get selected rows;
if (n rows(selected) > 0,
dt << delete rows;
);
그러나 JMP 15에서는 이것이 작동하지 않는 것 같습니다. 행이 선택되었지만 나중에 제거되지는 않습니다. 여러 위치에서 "현재 데이터 테이블()"을 사용하려고 시도했지만 도움이 되지 않았습니다. 이 부분을 작동시키는 방법에 대한 힌트를 주시면 감사하겠습니다. 뭔가 빠졌나요? 친애하는.
Re: JMP 15의 데이터 테이블에서 중복 항목 제거안녕하세요 Byron_JMP님,
당신의 답변에 감사드립니다. 테이블 가상 조인을 한 것 같아요. 하지만 다른 테이블의 참조 열에서 데이터를 선택한 경우 여전히 한 테이블의 데이터를 선택할 수 없습니다.
//dt_run - table with duplicates
//dt_run_exp - table without duplicates
dt_run_exp << Select duplicate rows( Match( dt_run_exp:DMC ) );
del_sel = dt_run_exp << get selected rows;
if(n rows(del_sel) > 0,
dt_run_exp << delete rows;
);
dt_run_exp:DMC << Set Property( "Link ID", 1 );
dt_run:DMC << Set Property( "Link Reference", Reference Table( dt_run_exp ) );
나중에 다른 옵션을 적용해 보도록 하겠습니다. 제안에 대한 추가 힌트를 환영합니다. 추가 설명이 필요하면 언제든지 문의하세요.
시간을 내주신 모든 분들께 감사드립니다.
</CODE></PRE><P> </P><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-270688" slang="en-US" mode="NONE">Re: JMP 15의 데이터 테이블에서 중복 항목 제거</LINGO-SUB><LINGO-BODY id="lingo-body-270688" slang="en-US" mode="NONE"><P>중복 제거된 테이블을 생성해 보십시오. 해당 테이블에 고유한 행이 있으므로 첫 번째 테이블에 다시 가상 조인을 수행하십시오. 링크가 아닙니다. 테이블은 여전히 동일한 동작을 갖습니다. </P>
<P>또 다른 이점은 중복 제거된 테이블에는 전체 테이블이 아닌 해당 테이블을 가리키는 그래프에 필요한 열만 포함하면 되므로 메모리를 덜 차지한다는 것입니다.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-270414" slang="en-US" mode="NONE">Re: JMP 15의 데이터 테이블에서 중복 항목 제거</LINGO-SUB><LINGO-BODY id="lingo-body-270414" slang="en-US" mode="NONE"><P>옵션을 알려주셔서 감사합니다! 그러나 한 종류의 그래프를 만드는 데 사용되며 모든 데이터가 필요하기 때문에 원본 테이블에서 중복 항목을 제거할 수 없습니다(중복 항목도 포함). 또한 이 경우 중복이 필요하지 않으므로 원본 테이블의 하위 집합을 기반으로 하는 두 번째 그래프를 만들어야 합니다. 두 그래프가 동일한 창에 표시되기 때문에 하위 집합을 생성하는 동안 "연결된" 옵션을 사용하면 그래프 중 하나의 데이터 집합을 선택한 경우 두 그래프의 데이터 포인트를 강조 표시할 수 있습니다. 그러니 이런 옵션도 있으면 좋을 것 같습니다. JMP 15에서 하위 집합을 생성하여 "링크됨" 옵션을 사용한 후 중복 항목을 제거하는 것이 작동하지 않는 이유는 무엇입니까? 내가 아직 뭔가를 놓치고 있는 것일 수도 있다. 어쨌든, 나는 다른 옵션을 시도해 볼 것이며 이전 설명이 충분히 명확하지 않은 경우 사과드립니다.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-270243" slang="en-US" mode="NONE">Re: JMP 15의 데이터 테이블에서 중복 항목 제거</LINGO-SUB><LINGO-BODY id="lingo-body-270243" slang="en-US" mode="NONE">두 가지 옵션이 표시됩니다.<BR /> 1. 데이터 테이블 연결 해제 => LinkToOriginalDataTable( 0 ).<BR /> 2. 소스 데이터 테이블에서 여러 행을 삭제합니다.</LINGO-BODY><LINGO-SUB id="lingo-sub-270187" slang="en-US" mode="NONE">Re: JMP 15의 데이터 테이블에서 중복 항목 제거</LINGO-SUB><LINGO-BODY id="lingo-body-270187" slang="en-US" mode="NONE"><P>귀하의 제안에 감사드립니다! 모든 솔루션을 시도했지만 원본 테이블에서 하위 집합을 생성하는 동안 "linked" 또는 "LinkToOriginalDataTable( 1 )" 옵션이 없으면 모든 경우에 중복 제거가 잘 작동합니다. 동일한 테이블과 결합하고 중복 항목을 제거하면 잘 작동했지만 원본 테이블과의 연결은 생성되지 않습니다. 아마도 가상 참여가 도움이 될 것입니다. 시도해 보겠습니다. 추가 힌트와 제안을 보내주시면 감사하겠습니다.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-269205" slang="en-US" mode="NONE">Re: JMP 15의 데이터 테이블에서 중복 항목 제거</LINGO-SUB><LINGO-BODY id="lingo-body-269205" slang="en-US" mode="NONE"><P>이 JSL 코드는 나에게 잘 작동합니다.</P><PRE><CODE class=" language-jsl">Names Default To Here(1);
dt = Current Data Table();
// Clear Data Table
dt << Clear Column Selection();
dt << Clear Select();
//Update Formula Columns
dt << Rerun Formulas;
wait(0);
// Delete multiple rows
dt << Select Duplicate Rows();
dt << Delete Rows();
Re: JMP 15의 데이터 테이블에서 중복 항목 제거약간 불안정해 보이지만 잘 작동하고 꽤 빠릅니다.
테이블을 자체적으로 조인하고 두 테이블 모두에 대해 배수를 삭제해 보세요.
중복에 대한 불완전한 고유 식별자를 생성하는 두 테이블의 열을 일치시킵니다.
여기에 예가 있습니다
Data Table( "Big Class.jmp" ) << Join(
With( Data Table( "Big Class.jmp" ) ),
By Matching Columns( :name = :name ),
Drop multiples( 1, 1 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
)
이 접근 방식은 메뉴 중심입니다. 조인을 실행한 후 중복 제거된 테이블에서 소스 스크립트를 가져오기만 하면 됩니다.
Re: JMP 15의 데이터 테이블에서 중복 항목 제거답장을 보내 주셔서 감사합니다!
예, 잘 작동하고 있습니다. 하지만 제가 알아낸 것은 중복 항목을 제거해야 하는 데이터 테이블이 더 큰 테이블의 하위 집합으로 생성된다는 것입니다. 하위 집합을 만드는 동안 스크립트가 여러 다이어그램을 생성하고 더 큰 테이블과 연결된 하나의 그래프에서 데이터를 선택하여 하위 집합 테이블의 그래프 데이터를 동시에 강조 표시하기 때문에 유용한 "링크됨" 추가 옵션이 사용됩니다. 그리고 이는 JMP 14에서도 잘 작동합니다.
JMP 15의 이 "링크된" 옵션을 사용하면 중복 제거가 작동하지 않습니다. 이 기능이 없으면 예상대로 작동하지만 이 경우 애플리케이션 기능이 눈에 띄게 제한됩니다. 이 기능이 작동하려면 고려해야 할 추가 옵션이나 명령이 있습니까?
dt = dt_original << Subset(invisible, linked, Selected Rows( 0 ), selected columns( 1 ), Output Table Name( "Table"));
Re: JMP 15의 데이터 테이블에서 중복 항목 제거다음은 오류 없이 예상대로 작동하는 코드의 예입니다.
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
dt << Select duplicate rows( Match( :name ) );
selected = dt << get selected rows;
if (n rows(selected) > 0,
dt << delete rows;
);