¿Cómo recorro las columnas para hacer una tabla de resumen de medias?
Su pregunta es vaga, por lo que mi respuesta podría ser similar y 'errar el blanco'.
Debido a que usted preguntó sobre el bucle, supongo que está haciendo scripts. También puede asignar interactivamente todas las columnas de datos numéricos al rol Y después de seleccionar Analizar> Distribución para obtener la media de todas las variables. Puede hacer clic con el botón derecho en una de las tablas y seleccionar Convertir en tabla de datos combinados.
Aquí hay una solución con script:
Names Default to Here( 1 );
dt = Current Data Table();
name = mean = List();
For( col = 1, col <= N Col( dt ), col++,
column = Column( dt, col );
type = column << Get Data Type;
If( type == "Numeric",
Insert Into( name, Eval( Column( dt, col ) << Get Name ) );
Insert Into( mean, Eval( Col Mean( Column( dt, col ) ) ) );
);
);
New Table( "Column Means",
New Column( "Name", "Character", "Nominal", Values( name ) ),
New Column( "Mean", "Numeric", "Continuous", Values( mean ) ),
);
Debería tomarse más tiempo para explicar completamente lo que está tratando de hacer y qué ayuda necesita cuando comienza una discusión si espera obtener una buena respuesta sin muchas iteraciones.
Creo que todo lo que necesitas hacer es usar
Tablas ==> Resumen
y seleccione todas las columnas para las que desea generar medios y luego haga clic en Aceptar y se generará la tabla.
Si necesita hacer esto usando JSL, todo lo que necesita hacer es crear una lista de las columnas para las que desea los medios, y luego usar eso en una llamada a la Plataforma de resumen.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colList = dt << get column names( string, continuous );
Data Table( "semiconductor capability" ) << Summary(
Mean( Eval( colList ) ),
Freq( "None" ),
Weight( "None" )
);