행, 스택 열로 필터링 하시겠습니까?몇 가지 기준에 따라 하위 집합 테이블을 만드는 방법을 알고 있습니다.
dt << Row Selection( Select where( (:Stat == "mean"), Current Selection( Extend )) );
dt << Select Columns( [10, 20] );
dt2 << Subset( Output Table( "test"), Selected Rows( 1 ), Selected columns( 1 ) );
하지만 이제 여러 기준에 대해 위의 내용을 반복하고 선택 항목을 쌓아야합니다. 즉, 새 테이블에 10 열이 고정 된 열로 포함 된 다음 위의 기준과 일치하는 행만있는 20 열을 계속 추가합니다. 행 수는 항상 동일합니다.
"스택"명령은 선택과 함께 작동하지 않습니다. 다른 명령이이를 수행 할 수 있는지 확실하지 않습니까?
스크립팅Re : 행별 필터링, 열 스택?다음은 Stack 플랫폼을 사용할 때 선택한 행을 쉽게 삭제하는 방법의 예입니다.
names default to here(1);
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Row Selection( Select where( (:Sex=="F"), Current Selection( "Extend" )) );
// Stack data table
dtStack = dt << Stack(
columns( :height, :weight ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);
dtStack << delete rows;
Re : 행별 필터링, 열 스택?(실수로 해결책으로 받아들이십시오)
감사하지만 선택한 행을 삭제하고 싶지 않습니다. 내가 처리 할 수 있지만 스택을 사용할 때 선택 항목을 어떻게 추가합니까?Re : 행별 필터링, 열 스택?할 수 있다고 생각한 방법은 다음과 같습니다 (작동하지 않습니다).
my_list = {"F0","F1"};
stackcols = {};
For( i = 1, i <= N Items( my_list ), i++,
dt << Row Selection( Select where( (:Freq==my_list[i]), Current Selection( "Extend" )) );
dt << Select Columns( [19] );
Insert Into( stackcols, dt )
);
dt2 << Subset( Output Table( "aa"), Selected Rows( 1 ), Selected columns( 1 ) );기본적으로 "Freq"열에 따라 활성 테이블을 필터링하고 먼저 "F0"값을 기준으로 "F1"을 기준으로 필터링합니다. 19 열에 있습니다. 이 선택을 'stackcols'라는 선택 목록에 추가합니다. 그래서 루프 후에 나는 이것이 두 개의 열 전체 목록이 될 것으로 기대합니다. 그런 다음 테이블을 만들고 싶습니다 ( "aa"라고 함). 그러나 작동하지 않습니다.
Re : 행별 필터링, 열 스택?아 ..... 선택한 행을 삭제하는 것이 맞습니다.그러나 선택되지 않은 항목을 삭제하려면
dtStack << Invert Row Selection;
그런 다음 행을 삭제하십시오.
여러 개의 독립적 인 누적 데이터 테이블을 추가하려면 다음을 수행하십시오.
- 반복되는 스택 인스턴스를 시작하기 전에 모든 스택 테이블이 연결되는 빈 기본 데이터 테이블을 만듭니다.
dtBase = New Table("Base");
- 그런 다음 생성 한 각 누적 테이블에 대해
- 누적 데이터 테이블에서 원하지 않는 행 삭제
- 누적 테이블을 기본 테이블에 연결
dtBase << Concatenate( dtStacked );
- 누적 테이블 삭제
Close( dtStacked, nosave );
Re : 행별 필터링, 열 스택?감사하지만 작동하지 않았습니다.
dt = current data table();
my_list = {"F0","F1"};
dtBase = New Table("Base");
dtStacked = {};
For( i = 1, i <= N Items( my_list ), i++,
dt << Row Selection( Select where( (:Freq==my_list[i]), Current Selection( "Extend" )) );
dt << Select Columns( [19] );
Insert Into( dtStacked, dt );
dtBase << Concatenate( dtStacked );
Close( dtStacked, nosave );
);dtBase가 비어 있습니다.