Cómo agregar una nueva columna a todas las tablas de datosTengo una serie de experimentos que producen un archivo de texto de resultados, titulado con el nombre de la muestra.
Tengo un script que toma el título de la tabla de datos y llena una nueva columna de "nombre de muestra" con el título.
dt = current data table();
name = dt << get name;
new column("Sample Name");
column(dt,"Sample Name")[1]=name;<BR />
nr = N Rows( dt );
For( ii = 2, ii <= nr, ii++,
If( is missing(Column( dt, "Sample Name" )[ii]),
Column(dt, "Sample Name" )[ii] = Column( dt, "Sample Name" )[ii - 1]
);
);Los experimentos se llevan a cabo decenas, incluso cientos a la vez. ¿Hay alguna adaptación a mi secuencia de comandos que pueda implementar para que esto se ejecute en todas las tablas de datos abiertas para poder concatenar todos los resultados y continuar automatizando el análisis?
secuencias de comandosRe: Cómo agregar una nueva columna a todas las tablas de datosGracias por su respuesta.
Recibo un error al ejecutar este script

Re: Cómo agregar una nueva columna a todas las tablas de datosLo más probable es que esté utilizando una versión anterior de JMP (For Each se introdujo en JMP16). La solución simple es reemplazarlo con For loop (también se corrigió un error tipográfico en el código):
Names Default To Here(1);
Open("$SAMPLE_DATA/Big Class.jmp"); // open for demo purposes
Open("$SAMPLE_DATA/Big Class Families.jmp"); // open extra table for demo purposes
new_col_name = "Sample Name";
dt_list = Get Data Table List();
For(i = 1, i <= N Items(dt_list), i++,
dt_cur = dt_list[i];
name = dt_cur << get name;
If(!Contains(dt_cur << Get Column Names("String"), new_col_name),
dt_cur << New Column(new_col_name, Character, Nominal, << Set Each Value(name));
);
);
Re: Cómo agregar una nueva columna a todas las tablas de datos¿Desea agregar una nueva columna a cada una de las tablas denominadas "Nombre de la muestra" y contendrá solo el nombre de esa tabla de datos específica?
Names Default To Here(1);
Open("$SAMPLE_DATA/Big Class.jmp"); // open for demo purposes
Open("$SAMPLE_DATA/Big Class Families.jmp"); // open extra table for demo purposes
new_col_name = "Sample Name";
For Each({dt_cur}, Get Data Table List(),
name = dt_cur << get name;
If(!Contains(dt_cur << Get Column Names("String"), new_col_name),
dt_cur << New Column(new_col_name, Character, Nominal, << Set Each Value(name));
);
);

Re: Como agregar una nueva columna a todas las tablas de datosSi necesita cada nombre de tabla solo para la concatenación, ¿por qué no dejar que la concatenación haga el trabajo, tiene una opción para este propósito? Consulte el índice o la ayuda de Scripting.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Trial1.jmp" );
dt2 = Open( "$SAMPLE_DATA/Trial2.jmp" );
dt << Concatenate(
Output Table( "Result Table with Source" ),
Data Table( "Trial2" ),
Create Source Column
);