Cómo utilizar el script Copiar tabla()Hola a todos,
Me gustaría copiar el script de la tabla de datos de una tabla de resumen creada y pegar el código en una tabla de nivel superior para poder acceder a ella en un análisis posterior sin tener que guardarla en otro lugar. Básicamente, intento simplificar la experiencia del usuario al tener que guardar varios archivos de tablas y luego reabrirlos para usar el análisis posteriormente.
Estaba pensando que sería así, pero no funciona. dt1 sería la tabla de resumen y dt2 sería la tabla principal.
Esto copiaría el script de la tabla de datos de dt1 y luego lo colocaría como un script de tabla en dt2.
source_script = dt1 << Copy Table Script();
Eval(EvalExpr(
dt2 << New Script("SourceFromSummary",
Expr(Name Expr(source_script))
);
));
¡Cualquier consejo sería muy apreciado!
Steve
Automatización y scriptingRe: Cómo utilizar el script Copiar tabla()¿Desea obtener la tabla de resumen resultante o simplemente usar el script para crearla? Use "Obtener script" en lugar de "Copiar script de tabla" (se copiará al portapapeles).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt_summary = dt << Summary(
Group(:Age),
subgroup(:sex),
Mean(:Height),
Include marginal statistics
);
summary_script = dt_summary << get script;
Eval(EvalExpr(
dt << New Script("Summary", Expr(NameExpr(summary_script)));
));
Re: Cómo utilizar el script Copiar tabla()Hola @jthi ,
Esperaba tener la tabla resultante. La tabla de resumen que se está creando proviene de una función "Convertir en tabla de datos" y me gustaría poder acceder a ella más tarde sin tener que volver a ejecutar el análisis (lo que ocurre si obtengo el script de la tabla fuente incrustada).
Re: Cómo utilizar el script Copiar tabla()En ese caso, << Obtener script debería funcionar para usted
Names Default To Here(1);
dt = New Table("ABC",
Add Rows(10),
New Column("A", Set Each Value(1)),
New Column("B", Set Each Value(1)),
);
tablescript = dt << get script;
Eval(EvalExpr(
dt << New Script("Create Copy", Expr(NameExpr(tablescript)));
));

Si realmente desea utilizar Copy Table Script() (no estoy seguro de por qué lo haría en un caso como este), utilice Get Clipboard() con Parse()
Names Default To Here(1);
dt = New Table("ABC",
Add Rows(10),
New Column("A", Set Each Value(1)),
New Column("B", Set Each Value(1)),
);
dt << Copy Table Script();
Eval(EvalExpr(
dt << New Script("Create Copy", Expr(Parse(Get Clipboard())));
));
Re: Cómo utilizar el script Copiar tabla()¡Lindo!
No me di cuenta de que podía simplemente usar el script get, estaba tratando de copiar la acción de flecha roja del script copy table, así que eso fue lo que encontré en el índice de scripts.
Una pregunta aparte, ¿hay alguna manera de hacer que una tabla sea "hija" de una tabla padre (como cuando creas una tabla de resumen y luego la vinculas)?

Esto permitiría que cuando se cierra la tabla principal, se cierre también la tabla principal y se puedan contraer las tablas en la ventana de inicio.
Re: Cómo utilizar el script Copiar tabla()Para crear "tablas secundarias", creo que deben estar vinculadas. Para ello, se debe usar la función Resumen en lugar de copiar el script de tabla con "Enlazar a la tabla original" (1). Otra opción sería modificar el script de tabla y agregar "<< Al cerrar" a la tabla original al ejecutarlo, pero puede ser difícil garantizar que siempre apunte a la tabla correcta (original), ya que "Current Data Table()" podría no funcionar como se espera. También es importante mantener el script de cierre actualizado a medida que se crean más tablas. Para ello, se pueden administrar las "referencias" con "Al cerrar" mediante variables de tabla o intentar usar "<< get on close" para extraer el último script de cierre y combinarlo con la nueva tabla para cerrar.
Re: Cómo utilizar el script Copiar tabla()También puede utilizar Suscribirse a la lista de tablas de datos con nombres de tablas específicos para saber cuáles pertenecen a la tabla principal.