Re: Script JMP para columna promedioHola @hsjoyner ,
¿Has investigado la función column()? En lugar de usar un nombre de columna, puede usar su índice.Esto podría ser útil en un bucle for().

Re: Script JMP para columna promedioSi el número de columna es fijo, puede codificar el medio ,
si el "etc." es variable, probablemente necesite algunos Insertar en y Evaluar(Sustituir()):
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
offset = 5;
nc = N Col( dt );
length = 10;
groups = Floor((nc - offset) / length);
For( group = 1, group <= groups, group++,
myFormula = Expr( Mean() );
For( i = 1, i <= length, i++,
Insert Into( myFormula, NameExpr(As Column( offset + (group-1)*length +i ) ))
);
myName = "average" || Char( group );
Eval(Substitute(Expr(new Column(__myName__,Formula(__myFormula__))),Expr(__myFormula__),NameExpr(myFormula),Expr(__myName__),NameExpr(myName) ));
);
Re: Script JMP para columna promedioAquí hay un script que espero cree lo que estás buscando.Crea nuevas columnas que promedian grupos de 10 columnas para un número indeterminado de columnas.

names default to here(1);
// Create an example data table to use for illustration of how to
// create the sets of average columns
dt =
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// Delete the first 3 columns to match the description
// of the suggested data table structure
dt << delete columns({"lot_id","wafer","wafer ID in lot ID"});
// Create new columns that have the groups of 10 columns
startingNCol = N Cols(dt);
start = 2;
groupSize = 10;
while(start+groupSize<=startingNCol,
eval(substitute(expr(
dt << New Column("Average " || char( start ) || "-" || char(start + groupSize),
set each value(Mean(current data table()[row(),index(theStart,theEnd)])));
),
expr(theStart), start, expr(theEnd), start+groupSize
));
start=start+groupSize;
);
Re: Script JMP para columna promedioMean(current data table()[row(),index(theStart,theEnd)])
wow, muy elegante, ¡mucho mejor que llenar la media manualmente con las referencias de las columnas!
Script JMP para columna promedioTengo un escritor de scripts JMP MUY novato que intenta escribir un comando para promediar un conjunto de columnas en una nueva columna con los promedios. Esto equivale a resaltar las columnas y luego seleccionar Nueva columna de fórmula > Combinar > Promedio. Sin embargo, no puedo encontrar nada en la biblioteca de scripts o en línea que me permita hacer esto. ¿Alguien tiene alguna sugerencia?
Para agregar una complicación adicional, quiero que el script tome las columnas 2-11, 12-21, 22-31, etc. y promedie cada grupo de columnas. Las columnas no tienen nombres establecidos, por lo que no puedo simplemente poner los nombres de las columnas en el script (no es posible hacer que los nombres sean consistentes porque los nombres de las columnas son nombres de muestra y necesito mantenerlos así). La cantidad de grupos de columnas en cada archivo JMP no es consistente porque la cantidad de muestras en cada archivo JMP puede variar ampliamente. ¿Hay una manera simple de hacer esto?
Estoy usando JMP 17.0.0 en una Mac si eso es útil. ¡Cualquier ayuda es apreciada!
Fusión y limpieza de datosMac OSRe: Script JMP para columna promedio¿Por qué la columna de fórmula no produce los mismos valores que en la columna Promedio 2 - 12?
Media( :NPN1, :PNP1, :PNP2, :NPN2, :PNP3, :IVP1, :PNP4, :NPN3, :IVP2, :NPN4, :SIT1 )
Editar: Me distraje al escribir el comentario y la fórmula anterior produce un valor coincidente.
Seguimiento: Mean() parece muy sensible a las propiedades de formato de columna, ya que obtuve resultados diferentes en mi propia tabla de datos cuando las columnas se configuraron en Ancho de Dec Fijo 15 Dec 3 versus Ancho Mejor 12. ¿Alguna recomendación para evitar este problema?
Re: Script JMP para columna promedioHola @hsjoyner ,
Si entiendo bien, y siempre que se desee la media de todos los grupos de columnas, debería ser posible obtener una lista de los grupos de columnas de la tabla y luego recorrer los nombres de esos grupos para crear columnas de fórmula que extraigan dinámicamente las columnas de cada grupo. Algo así:
dt = Current Data Table();
groupNames = dt << get column groups names;
For Each( {groupName, index}, groupNames,
Eval(
Eval Expr(
dt << New Column( groupName || " Mean",
Formula( Mean( Current Data Table() << get column group( Expr( groupName ) ) ) )
)
)
)
);
¡Espero que esto ayude!
@juliano
Editar: Tras releer tu mensaje y las respuestas, me he dado cuenta de que te refieres a grupos de columnas (es decir, conjuntos de columnas) en lugar de columnas que pertenecen a grupos reales en la tabla. Por lo tanto, esta respuesta no te será útil, pero la dejo aquí por si a alguien le pasa.:grinning_face: