Organizar en filas por grupoHola,
Aquí está el problema que estoy tratando de resolver:
6 variables continuas Y (Y1,Y2,..Y6), misma variable X continua (1) y campo ID de muestra (SID).
Estoy haciendo una agrupación de ajuste BiVariate por SID. Me gustaría que las 6 parcelas estuvieran en una fila y con cada grupo SID.
SID=1
Y1, Y2, Y3, Y4, Y5, Y6,
SID=2
Y1, Y2, Y3, Y4, Y5, Y6,
......
¿Cómo escribiría esto? Las Y y las X son conocidas y fijas, mientras que el número de ID de muestra variará.
Andy
Re: Ordenar en filas por grupoCreo que de esta manera podría ser más simple y darle el diseño que desea:
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: Ordenar en filas por grupoEsto muestra una forma de controlar el diseño, pero la matriz de gráficos resultante es la transposición de lo que desea.
New Window( "In a Row",
Line Up Box( N Col( 2 ),
Bivariate(
Y( :age, :weight, :oxy, :runtime ),
X( :runpulse ),
By( :sex )
)
)
);
Re: Ordenar en filas por grupoEl código de txnelson hace el trabajo, aunque en su ejemplo necesitaba comentar la línea de código
//dt << borrar columnas( Index( 9, 129 ) ); para que funcione.
Debo admitir que no lo entiendo completamente y me tropecé un poco con esta línea.
dt << selecciona donde ( : S.I.D. == número ( SIDgrps [ i ] ) ) ; ya que mi identificación es en realidad un personaje. Eliminé el Num() para que funcione.
La solución de Mark solo agrupa por SID pero no agrupa las parcelas en filas.
Andy
Re: Ordenar en filas por grupoSegún su descripción, parece que todo lo que tiene que hacer es usar SID en el rol Por.
Bivariate(
Y( :Y1, :Y2, :Y3, :Y4, :Y5, :Y6 ),
X( :X ),
By( :SID )
);
Re: Ordenar en filas por grupoAquí hay un script de ejemplo que usa una metodología que he usado muchas veces, que creo que produce los resultados que desea.
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 );
);