첫 번째 중복 행을 제거하는 방법은 무엇입니까?친애하는 커뮤니티 질문이 있습니다. 첫 번째 중복이 있는 행을 제거하는 방법입니다.
예
| Nr | 날짜 | 세다 |
| 4567 | 2017-01-21 | 1 |
| 5555 | 2017-02-03 | 1 |
| 5555 | 2017-02-10 | 2 |
| 8745 | 2015-03-10 | 1 |
| 8345 | 2016-05-01 | 1 |
| 9563 | 2016-01-02 | 1 |
| 9563 | 2016-01-10 | 2 |
이 예에서 여기에 굵은 텍스트로 표시한 중복 항목을 찾고 이러한 행을 직접 제거하거나 Keep 및 Eliminate와 같이 명시될 수 있는 추가 열을 만드는 방법에 대한 스크립트가 있습니까?
JMP Pro 14.0.0(64비트)을 사용하고 있습니다.
진심으로 당신
Lars Enochsson, MD, 박사
외과 교수
외과 및 외과 수술 과학과
우메아 대학
GallRiks의 스웨덴 담석 수술 및 ERCP 등록 책임자
스웨덴 외과 학회 과학 비서
이메일: lars.enochsson@umu.se
Re: 첫 번째 중복 행을 제거하는 방법은 무엇입니까?@ms ,
JMP에 대한 귀하의 다년간의 경험과 지식은 귀하의 커뮤니티 토론 응답에서 분명하게 드러납니다.커뮤니티에 참여해 주셔서 감사합니다.
짐
Re: 첫 번째 중복 행을 제거하는 방법은 무엇입니까?저는 사실 1994년 스웨덴의 웁살라 대학교에서 JMP를 처음 접했고 그 이후로 계속 사용하고 있습니다. JMP가 아직 스웨덴 학계에서 그다지 일반적으로 사용되지는 않지만 그 과정에서 상당수의 SPSS 사용자를 "전환"했습니다.
이 커뮤니티는 훌륭합니다.
Re: 첫 번째 중복 행을 제거하는 방법은 무엇입니까?글쎄, 나는 "감사합니다"에 감사드립니다. 당신이 동료 스칸디나비아 사람이라는 것을 알았으니 이제 당신에게 응답하는 것이 훨씬 더 기분이 좋습니다. 나의 증조할아버지 Nels Knutson은 노르웨이 Bergan에서 미국으로 이민을 오셨습니다.Re: 첫 번째 중복 행을 제거하는 방법은 무엇입니까?빠른 답변 감사합니다. 이 스크립트는 실제로 트릭을 수행했습니다. 스웨덴에는 적어도 학계에서는 JMP를 사용하는 사람이 많지 않습니다. 보통 그들은 SPSS 또는 Stata를 사용합니다. 그러나 이 활발한 커뮤니티에서는 변경할 이유가 없습니다. 여기 Umeå University의 통계학자도 감동했습니다./LarsRe: 첫 번째 중복 행을 제거하는 방법은 무엇입니까?이 스크립트도 작동해야 합니다.
// Delete all multiplicate rows except the one with the latest date (sorting does not matter).
dt = Current Data Table();
dt << Select Where(Col Max(:Date, :Nr) > :Date);
dt << Delete rows;
편집: 중복 항목의 날짜가 같을 수 있으면 더 잘 작동하지만 날짜별로 정렬해야 합니다.
dt << Select Where(Col Max(Row(), :Nr) > Row());
dt << Delete Rows;
Re: 첫 번째 중복 행을 제거하는 방법은 무엇입니까?작업을 완료하는 스크립트는 다음과 같습니다.
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 7 ),
New Script(
"Source",
Data Table( "Transpose of Untitled 17" ) <<
Subset( All rows, Selected columns only( 0 ) )
),
New Column( "Nr",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [4567, 5555, 5555, 8745, 8345, 9563, 9563] )
),
New Column( "Date",
Numeric,
"Continuous",
Format( "yyyy-mm-dd", 12 ),
Input Format( "yyyy-mm-dd" ),
Set Values(
[3567801600, 3568924800, 3569529600, 3508790400, 3544905600, 3534537600,
3535228800]
)
),
New Column( "Count",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 2, 1, 1, 1, 2] )
)
);
dt << select duplicate rows( Match( :Nr ) );
wait(5);
dt2 = dt << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
dt << delete rows;
Wait(5);
dt = dt << Update( With( dt2 ), Match Columns( :Nr = :Nr ) );
Close( dt2, nosave );
Re: 첫 번째 중복 행을 제거하는 방법은 무엇입니까?안녕 라스,
중복 항목은 항상 순차적으로 정렬됩니까, 아니면 그 사이에 레코드가 있을 수 있습니까?귀하의 예와 같이 항상 순차적이라면 다음과 같이 할 수 있습니다.
dt = Current Data Table();
del_rows = {}; //initiate list to contain list of rows that are duplicates
for(i = 1, i<=N Row(dt), i++,
if(:Nr[i] == :Nr[i+1], insert into(del_rows,i)) //if Nr for current row is same as next, then put current row in del_rows
);
dt << Delete Rows(del_rows); //delete all rows in del_rows