데이터 세트의 모든 열에서 데이터가 누락 된 행을 삭제하려면 어떻게해야합니까?내 질문이 얼마나 기본적인지 사과드립니다. 처음으로 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 : 데이터 세트의 모든 열에서 데이터가 누락 된 행을 삭제하려면 어떻게해야합니까?스크립트 여야합니까?
특정 셀이 누락 된 행이 하나만있는 경우 누락 된 셀을 선택합니다.
이제 행 메뉴로 이동하여 행 선택> 일치하는 셀 선택을 선택합니다.
이제 해당 열에서 데이터가 누락 된 모든 행이 선택됩니다. 행> 행 삭제를 선택합니다.
Re : 데이터 세트의 모든 열에서 데이터가 누락 된 행을 삭제하려면 어떻게해야합니까?누락 된 데이터 패턴 플랫폼을 살펴 봐야한다고 생각합니다.
테이블 => 누락 된 데이터 패턴
귀하의 설명에서 귀하의 요구를 충족시킬 것 같습니다.지정한 열을 분석 한 다음 생성하는 데이터 테이블에서 모든 누락 된 값이있는 열을 선택한 다음 삭제할 수 있습니다.
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 : 데이터 세트의 모든 열에서 데이터가 누락 된 행을 삭제하려면 어떻게해야합니까?이 스크립트는 귀하의 요청을 처리합니다. 다른 답변과 완전히 고유하지는 않습니다.
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 : 데이터 세트의 모든 열에서 데이터가 누락 된 행을 삭제하려면 어떻게해야합니까?이전 답변에서 알 수 있듯이 JMP에서 작업을 수행하는 방법에는 여러 가지가 있습니다.
4-14 열이 모두 숫자 인 경우이 스크립트는 누락 된 값이있는 행만 삭제하도록 작동해야합니다.
dt = Current Data Table();
dt << Delete Rows(Loc(Is Missing(V Mean(dt[0, 4 :: 14]`))));