グループごとに列に並べるやあ、
私が解決しようとしている問題は次のとおりです。
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: グループごとに並べるこれはレイアウトを制御する 1 つの方法を示していますが、結果として得られるプロットの配列は、必要なものを転置したものになります。
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 <<場所を選択してください( :シド==番号( SIDgrps [私] ) ) ;私のIDは実際にはキャラクターなので。 動作させるために 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 );
);