Seleccione solo tablas que contengan una cadena específica en la tabla para usar como variableHola,
Estoy tratando de concatenar un montón de tablas que un proceso genera de forma iterativa.
El nombre de esas tablas comienza con el mismo prefijo.
Puedo concatenar fácilmente todas las tablas abiertas, pero no puedo encontrar la sintaxis correcta para concatenar solo esas tablas con un prefijo específico y dejar las otras en paz.
¿Alguna sugerencia?
Mejor
Sebastián
//The first script to concatenate only tables with 'Pvalue' in the name fails
//But the dtLIst does shows the correct list of tables BUT list them without the 'data table' prefix.
// as a result, the concatenation step does not interpret them as a list of table
clear log();
Names Default To Here( 1 );
try(data table("LogP")<<CLOSE window=""></CLOSE>
Re: Seleccione solo tablas que contengan una cadena específica en la tabla para usar como variable¡Eso funcionó!
Muchas gracias.
Mejor,
SebastiánRe: Seleccione solo tablas que contengan una cadena específica en la tabla para usar como variableLa estructura de lo que es dt ha cambiado, por lo que el contenido debe cambiarse a
contains(uppercase(dt<<GET name=""></GET>
Re: Seleccione solo tablas que contengan una cadena específica en la tabla para usar como variable¡No necesitas disculparte! Probablemente no fui muy claro en primer lugar.
De todos modos, debemos estar cerca, pero la construcción del dtLIst no funciona. Probé con y sin mayúsculas sin éxito
Aquí está el registro de la ejecución:
el argumento debe ser un carácter en el acceso o la evaluación de 'Mayúsculas', Argumento incorrecto (dt), Mayúsculas/*###*/(dt)
Tan cerca pero tan lejos...
Aquí está mi código actual
clear log();
Names Default To Here( 1 );
try(data table("LogP")<<CLOSE window=""></CLOSE>
Re: Seleccione solo tablas que contengan una cadena específica en la tabla para usar como variableMe disculpo, pensé que su problema estaba en construir el dtLIst.El problema es ligeramente diferente.
El problema radica en proporcionar a la Plataforma Concatenar la información adecuada.La estructura de la entrada requerida de Concatenate Platform es
Data Table() << concatenate( data table(), data table()…., Append to first table(1) );
Lo que estás pasando a Concatenate es:
Data Table( "LogP" ) << Concatenate( Data Table( {"Pvalues PBS vs PBS", "Pvalues PBS vs 741039", "Pvalues PBS vs 740410", "Pvalues PBS vs 709966", "Pvalues PBS vs 709878", "Pvalues PBS vs 709573", "Pvalues PBS vs 709547", "Pvalues PBS vs 709544"} ), "Append to first table" )
El problema principal es que cada uno de los nombres de la tabla de datos que tiene debe cambiarse al formato de Tabla de datos ("...…..")
Esto se puede hacer con dos pequeños cambios.
Primero, cambie la estructura de su dtLIst.No desea solo el nombre de la tabla de datos, sino toda la estructura
For( i = 1, i <= N Table(), i++,
dt = data table(i);
if(contains(uppercase(dt),uppercase(c)),
insert into(dtLIst, dt ))
);
A continuación, la instrucción Concatenar se convierte en
data table("LogP")<<CONCATENATE></CONCATENATE>Re: Seleccione solo tablas que contengan una cadena específica en la tabla para usar como variableHola Jim,
Gracias por la rápida respuesta. He intentado que lo arregles sin éxito.
Aquí está el registro que obtengo cuando implemento mi script:
dtLIst =>
"{"Valores PBS frente a PBS", "Valores PBS frente a 741039", "Valores PBS frente a 740410", "Valores PBS frente a 709966", "Valores PBS frente a 709878", "Valores PBS frente a 709573", "Valores PBS frente a 709547" , "Valores PBS frente a 709544"}
No se puede ubicar la tabla de datos en el acceso o evaluación de 'Tabla de datos', Tabla de datos/*###*/(dtLIst)
en la línea 19 en C:\Users\sburel\Ionis\Neurology Research - Documents\Core\Neurotoxicology\Miscellaneous Research Activities\DATABASE ALL CNS DATA\Associated scripts\intermediate and toy scripts\Toy example para concatenar varias tablas con una cadena específica en nam.jsl "
Si uso la siguiente parte del script, aquí está el registro que obtengo para dxLIst=>
"{DataTable("LogX"), DataTable("LogP"), DataTable("Pvalues PBS vs PBS"), DataTable("Pvalues PBS vs 741039"), DataTable("Pvalues PBS vs 740410"), DataTable("Pvalues PBS frente a 709966"), DataTable("Valores PBS frente a 709878"), DataTable("Valores PBS frente a 709573"), DataTable("Valores PBS frente a 709547"), DataTable("Valores PBS frente a 709544"), DataTable("NT191209 Ratón 7-DGE in vivo apilado solo")}"
La segunda lista se concatena muy bien, pero incluye tablas que no quiero. La primera lista (dtLIst) no contiene la "Tabla de datos ("xyz").
Sospecho que no estoy usando la sintaxis adecuada para decirle a la secuencia de comandos que evalúe cada elemento de la primera lista como una tabla de datos.
//This script to concatenate only table with 'Pvalue' in the name fails
//But the dtLIst does shows the correct list of tables BUT list them without the 'data table' prefix.
// as a result, the concatenation step does not interpret them as a list of table
clear log();
Names Default To Here( 1 );
try(data table("LogP")<<CLOSE window=""></CLOSE>Tal vez puedas ver los errores de mi camino 
Gracias
Sebastián
Re: Seleccione solo tablas que contengan una cadena específica en la tabla para usar como variableNo puedo ver nada intrínsecamente incorrecto... pero podría estar teniendo un problema de mayúsculas/minúsculas, intente
If(contains(uppercase(dt), uppercase(c),
insert into(dtLIst, dt )
);