테이블의 하위 집합을 만들고 루프에서 데이터를 추가하는 방법안녕하세요,
데이터 세트가 있습니다 (첨부 참조). 특정 기준에 대해 열의 모든 행을 확인한 다음 해당 기준을 충족하지 않는 행을 분리하여 새 데이터 표로 하위 집합으로 만들고 싶습니다. 나는 여러 열 (각각은 고유 한 기준을 가지고 있음)에 대해 이것을 반복 할 수 있고 내가 원래 만든이 서브셋 테이블에 계속 추가 할 수 있기를 원한다. 나는 이것에 약간 말썽이 있고 누군가가 도울 수 있던 경우에 희망하고 있었다.
여기 내가 뭘하고 있었 :
path = "xxxxxxx/";
data_table = Open( path || "Sample Data.jmp" );
Sub_Table = New Table( "Rejected Parts Table", invisible );
New_table = data_table;
For( k = 1, k < N Col( New_table ), k++,
Print( k );
New_table << select where( Column( 1 + k )[] >= 0.2 | Column( 1 + k )[] <= 0.02 );
alp = New_table << Subset( Selected Rows, output table name( "subset" ) );
alp << Concatenate( Sub_Table, output table name( "Rejected Parts Table" ) ) <<
Save( path || "Rejected Parts.jmp" );
Close( alp );
New_table << delete rows();
);
제목 : Re : 테이블의 하위 집합을 만들고 루프에서 데이터를 추가하는 방법모든 항목에 대해 동일한 기준을 사용하는 대체 방법 :
dt = Data Table( "Sample Data.jmp" );
r = Loc( V Sum( Transpose( !(0.02 < dt << get as matrix < 0.2) ) ) );
dt << Subset( rows( r ), output table name( "Rejected Parts Table" ) );
dt << delete rows( r );
각 열에 자체 기준이있을 때 약간 더 복잡합니다 (예 :
dt = Data Table( "Sample Data.jmp" );
upper = [0.2 0.3 0.2 0.4 0.2];
lower = [0.02 0.03 0.02 0.04 0.02];
r = Loc( V Sum( Transpose( !(Repeat( lower, N Row( dt ) ) < dt << get as matrix < Repeat( upper, N Row( dt ) )) ) ) );
dt << Subset( rows( r ), output table name( "Rejected Parts Table" ) );
dt << delete rows( r );
제목 : Re : 테이블의 하위 집합을 만들고 루프에서 데이터를 추가하는 방법이것은 다소 까다 롭습니다. 주요 수정 프로그램은 SELECT 문에서 AS COLUMN을 사용하는 것입니다. 논리를 변경하여 행을 가져오고 하위 행 집합 / 삭제 행 목록을 작성합니다. get_unique_values 함수는이 포럼에서 제공합니다!
get_unique_values = Function( {in_list},
{Default Local},
tmp = [=> 0];
Insert Into( tmp, in_list );
tmp << get keys;
);
path = "c:\temp\";
New_table = Open( path || "Sample Data.jmp" );
all_selected_rows = [];
For( k = 1, k < N Col( New_table ), k++,
Print( k );
selected_rows = new_table << get rows where( As Column( 1 + k ) >= .2 | As Column( 1 + k ) <= .02 );
// Append the rows we just found to the master list
If( N Rows( selected_rows ) > 0,
all_selected_rows = all_selected_rows |/ selected_rows
);
);
// Convert matrix to a list and get unique values
all_selected_list = get_unique_values( As List( all_selected_rows ) );
alp = New_table << Subset( rows( all_selected_list ), output table name( "Rejected Parts Table" ) );
alp << Save( path || "Rejected Parts.jmp" );
Close( alp );
New_table << delete rows( all_selected_list );