내 데이터세트의 모든 열에서 데이터가 누락된 행을 삭제하려면 어떻게 해야 하나요?제 질문이 얼마나 기초적인지 사과드립니다. 이제 막 JMP를 처음으로 사용하기 시작했습니다.
방대한 데이터 세트(14열 x 20,000행)가 있고 특정 열 범위(열 4-14)에 대해 0 또는 1이 없는 모든 행을 식별하고 삭제하는 스크립트를 작성하려고 합니다. 이 데이터 세트는 훨씬 더 큰 데이터 세트에서 가져온 것이므로 내 하위 집합에 완전히 비어 있는 일부 행이 있습니다. 내가 하고 싶었던 일의 예는 다음과 같습니다.
- - - - -
0 0 1 - 0
- - - - -
1 - - - -
된다:
0 0 1 - 0
1 - - - -
코드 작성을 시작했지만 막혔습니다. For Each Row 이후에 무엇을 해야 할지 잘 모르겠습니다. 이 스크립트가 한 번에 한 행씩 보고 특정 셀에 0 또는 1이 없으면 다음 열에서 0 또는 1을 찾고 끝에 도달하면 0 또는 1이 없는 행의 경우 전체 행을 삭제합니다. 지금까지 내 코드는 다음과 같습니다.
dt=Open("File Name")
colnames = dt << get column names( numeric,string );
For( i = 4, i <= N Items( colnames ), i++,
For Each Row(If(:colnames != 0 | :colnames != 1), Continue()
)
);나는 사용에 대해 생각하고 있었다
<< Delete Rows
, 이 포럼의 다른 질문에서 본 적이 있습니다. 이것이 스크립트로 너무 복잡하다면 더 좋은 방법이 있습니까?
소비자 및 시장 조사데이터 혼합 및 정리품질 및 프로세스 엔지니어링Re: 데이터세트의 모든 열에서 데이터가 누락된 행을 삭제하려면 어떻게 해야 하나요?이전 답변에서 알 수 있듯이 JMP에서 작업을 수행하는 방법에는 여러 가지가 있습니다.
열 4-14가 모두 숫자인 경우 이 스크립트는 값이 누락된 행만 삭제하도록 작동해야 합니다.
dt = Current Data Table();
dt << Delete Rows(Loc(Is Missing(V Mean(dt[0, 4 :: 14]`))));
Re: 데이터세트의 모든 열에서 데이터가 누락된 행을 삭제하려면 어떻게 해야 하나요?이 스크립트는 귀하의 요청을 처리합니다. 다른 답글과 완전히 다른 것은 아닙니다.
Names Default to Here( 1 );
// get reference to target data table
dt = Current Data Table();
// get all the columns for missing value check
cols = dt << Get Column Names;
// obtain missing value patterns
missing = Current Data Table() << Missing Data Pattern(
Columns( Eval( cols ) ),
Output Table( "Missing Data Pattern" )
);
// make character string representing missing values in all columns
n missing = N Items( cols );
all missing = Repeat( "1", n missing );
// find the row of patterns where all columns are missing.
missing << Select Where( :Patterns == all missing );
// delete the linked rows in the original table
dt << Delete Rows;
// clean up
Close( missing, No Save );
Re: 데이터세트의 모든 열에서 데이터가 누락된 행을 삭제하려면 어떻게 해야 하나요?또는 스크립트를 작성하려면 다음을 제안합니다.
dt << New Column("Selected", Character, Nominal, Formula(
If(Is Missing(:Column4) | Is Missing(:Column5)|...until column14,
"Yes",
"No"
)
));
dt << Select Where(:Selected == "Yes");
dt << Delete Rows;Re: 데이터세트의 모든 열에서 데이터가 누락된 행을 삭제하려면 어떻게 해야 하나요?Missing Data Pattern 플랫폼을 살펴볼 필요가 있다고 생각합니다.
테이블=>누락된 데이터 패턴
귀하의 설명에서 귀하의 요구를 충족시킬 것 같습니다.지정한 열을 분석한 다음 생성하는 데이터 테이블에서 값이 모두 누락된 열을 선택한 다음 삭제할 수 있습니다.
Re: 데이터세트의 모든 열에서 데이터가 누락된 행을 삭제하려면 어떻게 해야 하나요?이것이 스크립트 여야합니까?
해당 특정 셀이 누락된 행을 하나만 찾으면 누락된 셀을 선택하십시오.
이제 행 메뉴로 이동하여 행 선택 > 일치하는 셀 선택을 선택합니다.
이제 해당 열에서 데이터가 누락된 모든 행이 선택됩니다. 행 > 행 삭제를 선택합니다.
Re: 데이터 세트의 모든 열에서 데이터가 누락된 행을 삭제하려면 어떻게 해야 합니까?정말 감사합니다. 놀라운 비밀이 담긴 컬렉션이네요!
- 데이터 테이블 인덱싱
- V Mean() - "누락된" 항목에 대한 정보를 집계합니다.
- 장소()
- 행 삭제(행) **)
**) 와 where(dt, is missing ...)) 를 함께 사용하면 다음보다 훨씬 빠릅니다.
+ select where()