Disposer en rangées par groupeSalut,
Voici le problème que j'essaie de résoudre :
6 variables continues Y (Y1,Y2,..Y6), même variable X continue (1) et champ ID échantillon (SID).
Je fais un regroupement d'ajustement bivarié par SID. Je voudrais que les 6 parcelles soient alignées et avec chaque groupe SID.
SID=1
Y1,Y2,Y3,Y4,Y5,Y6,
SID=2
Y1,Y2,Y3,Y4,Y5,Y6,
......
Comment pourrais-je écrire cela ? Les Y et X sont connus et fixes tandis que le nombre d'ID d'échantillons varie.
Andy
Re : Disposer en rangées par groupeJe pense que cette façon pourrait être plus simple et vous donner la mise en page que vous voulez:
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 : Disposer en rangées par groupeCela montre une façon de contrôler la mise en page, mais le tableau de tracés résultant est la transposition de ce que vous voulez.
New Window( "In a Row",
Line Up Box( N Col( 2 ),
Bivariate(
Y( :age, :weight, :oxy, :runtime ),
X( :runpulse ),
By( :sex )
)
)
);
Re : Disposer en rangées par groupeLe code de txnelson fait le travail, même si dans son exemple j'avais besoin de commenter la ligne de code
//dt << supprimer les colonnes( Index( 9, 129 ) ); pour que ça marche.
Je dois admettre que je ne comprends pas très bien et j'ai un peu trébuché avec cette ligne
dt << sélectionner où ( : SID == Numéro ( SIDgrps [ je ] ) ) ; puisque mon ID est en fait un personnage. J'ai supprimé le Num () pour le faire fonctionner.
La solution de Mark ne fait que le regroupement par SID mais ne regroupe pas les parcelles en lignes.
Andy
Re : Disposer en rangées par groupeD'après votre description, il semble que tout ce que vous avez à faire est d'utiliser SID dans le rôle By.
Bivariate(
Y( :Y1, :Y2, :Y3, :Y4, :Y5, :Y6 ),
X( :X ),
By( :SID )
);
Re : Disposer en rangées par groupeVoici un exemple de script utilisant une méthodologie que j'ai utilisée à plusieurs reprises et qui, je pense, produit les résultats souhaités.
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 );
);