그룹별로 행 정렬안녕,
해결하려는 문제는 다음과 같습니다.
6 Y 연속 변수(Y1,Y2,..Y6), 동일한 연속 X 변수(1) 및 샘플 ID 필드(SID).
SID별로 BiVariate 맞춤 그룹화를 수행하고 있습니다. 6개의 플롯이 모두 한 행에 있고 각 SID 그룹과 함께 있기를 바랍니다.
SID=1
Y1,Y2,Y3,Y4,Y5,Y6,
SID=2
Y1,Y2,Y3,Y4,Y5,Y6,
......
이것을 어떻게 스크립팅할까요? Y와 X는 알고 고정되어 있지만 샘플 ID의 수는 다양합니다.
앤디
Re: 그룹별로 행 정렬이 방법이 더 간단하고 원하는 레이아웃을 제공할 수 있다고 생각합니다.
New Window( "Fitness - Bivariate",
V List Box(
Fit Group(
Bivariate( Y( :Age ), X( :MaxPulse ) ),
Bivariate( Y( :Weight ), X( :MaxPulse ) ),
Bivariate( Y( :Oxy ), X( :MaxPulse ) ),
Bivariate( Y( :Runtime ), X( :MaxPulse ) ),
Bivariate( Y( :RunPulse ), X( :MaxPulse ) ),
Bivariate( Y( :RstPulse ), X( :MaxPulse ) ),
<<{Arrange in Rows( 2 )},
By( :Sex )
),
Fit Group(
Bivariate( Y( :Age ), X( :MaxPulse ) ),
Bivariate( Y( :Weight ), X( :MaxPulse ) ),
Bivariate( Y( :Oxy ), X( :MaxPulse ) ),
Bivariate( Y( :Runtime ), X( :MaxPulse ) ),
Bivariate( Y( :RunPulse ), X( :MaxPulse ) ),
Bivariate( Y( :RstPulse ), X( :MaxPulse ) ),
<<{Arrange in Rows( 2 )},
By( :Sex )
)
)
);
Re: 그룹별로 행 정렬이것은 레이아웃을 제어하는 한 가지 방법을 보여주지만 결과 플롯 배열은 원하는 것의 전치입니다.
New Window( "In a Row",
Line Up Box( N Col( 2 ),
Bivariate(
Y( :age, :weight, :oxy, :runtime ),
X( :runpulse ),
By( :sex )
)
)
);
Re: 그룹별로 행 정렬txnelson의 코드가 작업을 수행하지만 그의 예제에서는 코드 줄을 주석 처리해야 했습니다.
//dt << 열 삭제( Index( 9, 129 ) ); 실행합니다.
나는 그것을 완전히 이해하지 못하고 이 줄에서 약간 비틀거렸다는 것을 인정해야 합니다.
dt << 어디를 선택 ( : SID == 숫자 ( SIDgrps [ 나 ] ) ) ; 내 아이디는 사실 캐릭터니까. 작동하도록 Num()을 제거했습니다.
Mark의 솔루션은 SID별 그룹화만 수행하지만 플롯을 행으로 그룹화하지 않습니다.
앤디
Re: 그룹별로 행 정렬설명에 따르면 By 역할에서 SID를 사용하기만 하면 됩니다.
Bivariate(
Y( :Y1, :Y2, :Y3, :Y4, :Y5, :Y6 ),
X( :X ),
By( :SID )
);
Re: 그룹별로 행 정렬다음은 내가 여러 번 사용한 방법론을 사용하는 예제 스크립트이며 원하는 결과를 생성한다고 생각합니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// Setup data to look somewhat like your data
dt << delete columns( 1, 2, 3 );
Column( dt, 1 ) << set name( "SID" );
Column( dt, 2 ) << set name( "X" );
Column( dt, 3 ) << set name( "Y1" );
Column( dt, 4 ) << set name( "Y2" );
Column( dt, 5 ) << set name( "Y3" );
Column( dt, 6 ) << set name( "Y4" );
Column( dt, 7 ) << set name( "Y5" );
Column( dt, 8 ) << set name( "Y6" );
dt << delete columns( Index( 9, 129 ) );
// Determine the number of SIDs
Summarize( dt, SIDgrps = by( SID ) );
// Create the output window
nw = New Window( "Report", MainVLB = V List Box() );
// Create a list to hold the data table names
dtList = {};
// Setup what to do when the display window is closed
nw << on close( For( i = 1, i <= N Items( SIDgrps ), i++, Close( dtList[i], nosave ) ) );
// Loop through the SIDs and generate the required reports
For( i = 1, i <= N Items( SIDgrps ), i++,
dt << select where( :SID == Num( SIDgrps[i] ) );
dtSub = dt << subset( selected rows( 1 ), selected columns( 0 ), invisible );
Insert Into( dtList, dtSub );
dtSub << set name( "SID=" || SIDgrps[i] );
ob = Outline Box( "SID=" || SIDgrps[i],
H List Box(
dtSub = Bivariate( Y( :Y1 ), X( :X ) ),
dtSub = Bivariate( Y( :Y2 ), X( :X ) ),
dtSub = Bivariate( Y( :Y3 ), X( :X ) ),
dtSub = Bivariate( Y( :Y4 ), X( :X ) ),
dtSub = Bivariate( Y( :Y5 ), X( :X ) ),
dtSub = Bivariate( Y( :Y6 ), X( :X ) ),
)
);
// Add the current set of reports to the main display
MainVLB << append( ob );
);