Cómo ordenar tablas abiertas por nombre de tabla<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy abriendo varias mesas a la vez. Una vez abierto, recorro todas las tablas abiertas de la tabla 1 a la N () y almaceno las referencias a cada tabla en una lista. Sin embargo, a medida que recorro cada mesa abierta, no estoy seguro de cómo está organizada en la memoria. Línea inferior, quiero que las entradas en mi lista se ordenen de acuerdo con el nombre de la tabla. ¿Hay alguna manera de ordenar las tablas abiertas antes de almacenarlas en una lista? O para ponerlo en un ángulo diferente, ¿cuál es la mejor manera de ordenar las referencias de la tabla dentro de mi lista (si asumo que están almacenadas en mi lista en un orden aleatorio)?
Re: Cómo ordenar tablas abiertas por nombre de tabla¡No ordenes las mesas después de que estén abiertas!
Ordena los nombres de las tablas antes de abrirlos. Puede obtener los nombres de las tablas como una lista y luego trabajar con ellos allí. Una vez ordenada la lista, ábralas secuencialmente y procéselas.
En este guión: https://community.jmp.com/t5/JMP-Scripts/Combine-multiple-txt-or-csv-files/ta-p/24083
Obtengo una lista de todos los tipos de archivos en un directorio y, a continuación, abro los archivos de forma secuencial. Esto funciona muy bien cuando los archivos individuales son grandes, o cuando hay miles de archivos.
Re: Cómo ordenar tablas abiertas por nombre de tablaUsaría la propiedad de orden de valor de una columna para hacer esto. Aquí hay un ejemplo:
sort_order_list = {"XXX", "AAA", "DDD", "GGG", "YYY", "QQQ"};
dt = New Table( "Untitled 15", Add Rows( 6 ),
New Column( "To Be Sorted", Character, "Nominal",
Set Values( {"AAA", "DDD", "GGG", "QQQ", "XXX", "YYY"} )
)
);
column(dt, "To Be Sorted") << set property("Value Ordering", sort_order_list);
Ahora cuando ordenes la columna Para ser ordenados se ordenará por el orden de los elementos en la lista.
Re: Cómo ordenar tablas abiertas por nombre de tablaNo estoy seguro de entender lo que estás preguntando, desafortunadamente.
Supongamos que tengo el primer valor de la cadena de caracteres, myList = {"alpha", "gamma", "beta"} y una tabla, "Mi tabla", con una columna llamada "Vals" que tiene uno de estos tres valores en cada celda .
¿Desea ordenar 'Mi tabla "para que todas las filas con" alfa "aparezcan primero, todas las filas con" beta "sean las últimas, y todas las filas con" gamma "estén en el medio?
Re: Cómo ordenar tablas abiertas por nombre de tabla¿Cómo puedo ordenar la tabla por valores en una lista en lugar de ascendente o descendente?
Supongamos que tengo valores de columna únicos en una lista. y el orden de los valores en la lista es ni ascendente ni descendente. ¿Cómo puedo usar esta lista para ordenar la tabla?
Gracias por adelantado.
RAM
Re: Cómo ordenar tablas abiertas por nombre de tablaGracias. Debería haber pensado en esto antes. Intenté clasificar la lista antes, pero solo contenía los nombres de las tablas.
Re: Cómo ordenar tablas abiertas por nombre de tablaAquí hay una alternativa si se necesita una lista de referencias de tabla de datos, en lugar de cadenas:
openTables = {};
For(i = 1, i <= N Table(), i++,
Insert Into(openTables, Data Table(i))
);
Sort List Into(openTables);
// Refer directly to table, e.g.
openTables[1] << Bring Window to Front;
Re: Cómo ordenar tablas abiertas por nombre de tablaLo siento, pasé por alto el bastante ingenioso 'Ordenar lista en ()' '. Claramente, necesito volver a familiarizarme con 'Ayuda> Índice de secuencias de comandos'.
Entonces, sí, puedes hacer:
// Build the sorted list
openTables = {};
for(t=1, t<=NTable(), t++, InsertInto(openTables, DataTable(t) << getName));
SortListInto(openTables);
// Manipulate (Close) each table in this list
for(t=1, t<=NItems(openTables), t++, Close(DataTable(openTables[t]), NoSave); Wait(1));
Re: Cómo ordenar tablas abiertas por nombre de tabla@Ian, una vez que los nombres de las tablas se ordenan y almacenan en la lista de tablas abiertas, ¿cómo puedo hacer referencia a la tabla? Por ejemplo, es posible hacer esto:
Para (a = 1, a <= N Table (), a ++,
tmpDT = Tabla de datos (tablas abiertas) );
// ....
);
Por separado, ¿haría esto lo mismo para ordenar los contenidos de la lista?
Ordenar la lista en (openTables);
Saludos,
Chris
csoon1 wrote:I am opening multiple tables at once. Once opened, I loop through all open tables from 1 to N Table() and store the references to each table on a list. However as I loop through each open table, I am not sure how it is arranged in the memory. Bottom line, I want the entries on my list to be sorted according to the table name. Is there a way for me to sort the open tables before storing them to a list? Or to put it in a different angle, what's the best way to sort the table references inside my list (if assuming they are stored on my list at a random order)?
Re: Cómo ordenar tablas abiertas por nombre de tablaAquí hay una forma:
openTables = {};
for(t=1, t<=NTable(), t++, InsertInto(openTables, DataTable(t) << getName));
dt = NewTable("Invisible", NewColumn("Table Name", Character, Values(openTables)), Invisible);
dt << Sort(By("Table Name"), Ascending, ReplaceTable);
openTables = Column(dt, "Table Name") << getValues;
Close(dt, NoSave);