Cómo agregar valores de datos a una tabla en un bucle for usando Seleccionar columnas Dónde hacer una nueva tabla de datos general de datos de destinoFor( date = date_array << First, !Is Empty( date ), date = date_array << Next( date ), //looping through date_array's keys is clunky but done this way in JMP
dt << Select Columns( :Timepoint, :Target Channel, :Run date ), Where(:Timepoint == date);
dt << Subset( ( Selected Rows ), Output Table Name( "Subset" ));<BR />);
Deseo agregar, progresivamente, a través de cada iteración de un ciclo for, datos especificados por un criterio de columna (:Punto de tiempo == LBCM) y combinarlos en una tabla de datos combinados al final, cuando finaliza el ciclo, y mostrar el resultado .
A partir de ahora no agrega nada en ninguna parte; Termino sin ninguna tabla de datos nueva.
También tengo todo esto dentro de otro bucle for, basado en una identificación de muestra, pero creo que agregar eso aquí solo complicaría demasiado las cosas por ahora.
Todos los demás ejemplos que he encontrado en los foros de la comunidad de JMP son muy complicados, o al menos eso parece, crear matrices de datos y transferirlos a tablas de datos o cosas por el estilo. Deseo que la solución aquí sea lo más simple posible. Por supuesto, contribuiré a la conversación a medida que lleguen las respuestas, pero a partir de ahora estoy completamente atascado.
Gracias por tu ayuda,
Miguel
AnalíticaTabla de datosOtrosecuencias de comandosARe: Cómo agregar valores de datos a una tabla en un bucle for usando Seleccionar columnas Dónde hacer una nueva tabla de datos general de datos de destinoSeleccionar la parte Columnas es quizás una ganancia de eficiencia muy pequeña, pero sobre todo hace que el código sea más fácil de leer (en mi opinión).
¿Ha intentado agregar impresiones de depuración dentro de los bucles para ver si hay algo para subconjunto?
For(i = 1, i <= N Items(IDs), i++,
ID = IDs[i];
date_array = Associative Array({"date1", "date2", "date"}, {{}, {}, {}});
For(date = date_array << First, !Is Empty(date), date = date_array << Next(date),
dt << Select Where(:Timepoint == date);
Show(N Items(dt << Get Selected Rows));
dt_ld4 << Subset(Columns({"Timepoint", "Target Channel"}), Selected Rows, Output table name("Subset"));
);
);yo añadí Mostrar (N elementos (dt << Obtener filas seleccionadas)); que debería indicarle si se ha seleccionado alguna fila. Además, no me sentiría cómodo usando ID como nombre de variable si tiene una columna con un nombre similar (podría funcionar, no estoy seguro, pero evito esos nombres solo para estar seguro). Lo reemplazaría con currentID o algo así.
Creo que en este punto, tal vez sería más fácil si tuviéramos un tema en el que pudiéramos tratar de ayudarlo a resolver este problema parte por parte.Una cosa que nos ayudaría mucho sería tener un conjunto de datos de ejemplo. El conjunto de datos no tiene que ser grande, puede ser anónimo o completamente falso, pero debe ser realista (tipos de datos de columna iguales, posibilidad de probar diferentes casos).
Re: Cómo agregar valores de datos a una tabla en un bucle for usando Seleccionar columnas Dónde hacer una nueva tabla de datos general de datos de destinoGracias por esto, Jarmo. Entonces, ¿su código es principalmente una ganancia de eficiencia o una ganancia de funcionalidad de buena fe?
No me funciona del todo, pero tengo que decir que tengo todo esto en otro bucle for (o dos):
For( i = 1, i <= N Items( IDs ), i++,
ID = IDs[i];
date_array = Associative Array( {"date1", "date2", "date"}, {{}, {}, {}} );
For( date = date_array << First, !Is Empty( date ), date = date_array << Next( date ), //looping through date_array's keys is clunky but done this way in JMP
dt << Select Where(:Timepoint == date);
dt_ld4 << Subset(Columns({"Timepoint", "Target Channel"}), Selected Rows, Output table name("Subset"));
//...
););La computadora parece pensar bastante en la ejecución, pero no aparece nada en la pantalla. Debo señalar que todo este código es anónimo, por lo que existe la posibilidad de errores ortográficos y de transcripción, así como la posibilidad de confundirse con versiones anteriores de lo que se escribió. Supongo que es seguro asumir que se pueden hacer similitudes aproximadas...
No sé si estas dos líneas deberían estar dentro de los bucles o fuera de uno de ellos, o si necesito ambos bucles en este momento. Necesito echar un vistazo profundo al guión una vez más.
También estoy discutiendo algunos temas separados con respecto a este fragmento de código en publicaciones separadas. ¿Podría alguien de alto nivel decirme si esa es una etiqueta aceptable, o si sería preferible priorizar el fragmento de código en una publicación y discutir los temas separados en una sola publicación, o si cualquiera de las dos formas está bien?
muchas gracias,
Miguel
Re: Cómo agregar valores de datos a una tabla en un bucle for usando Seleccionar columnas Dónde hacer una nueva tabla de datos general de datos de destinoNo estoy 100% seguro de lo que quieres hacer aquí, así que supongo un poco
Parece que estas dos filas pueden tener algunos problemas:
dt << Select Columns( :Timepoint, :Target Channel, :Run date ), Where(:Timepoint == date);
dt << Subset( ( Selected Rows ), Output Table Name( "Subset" )););
Puede combinar las columnas que desee dentro del comando de subconjunto y la selección de filas se puede hacer con << Seleccionar dónde (parece que le falta Seleccionar).
dt << Select Where(:Timepoint == date);
dt << Subset(Columns({"Timepoint", "TargetChannel"}), Selected Rows, Output table name("Subset"));Además, si prefiere seleccionar primero las columnas que desea dividir en subconjuntos, deberá agregar Columnas seleccionadas dentro del comando Subconjunto
dt << Subset(Output table name("Subset"), Selected Rows, Selected Columns);Re: Cómo agregar valores de datos a una tabla en un bucle for usando Seleccionar columnas Dónde hacer una nueva tabla de datos general de datos de destinoEcha un vistazo a
dt << add rows(n);
para agregar nuevas filas según sea necesario