Scripting de subconjuntos<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola usuarios de JMP,
Puedo generar secuencias de comandos para subconjuntos de archivos de datos grandes, pero luego tengo que nombrarlos manualmente y ejecutarlos todos individualmente a través de un segundo y tercer subconjunto de secuencias de comandos. ¿Hay alguna manera de ejecutar iterativamente el comando de subconjunto y guardar los archivos para incluir las definiciones de subconjunto?
Por ejemplo: subconjunto del archivo "Colores" por columna1 (rojo, azul, verde) para producir y guardar archivos: Colors.red.jmp, Colors.blue.jmp, Colors.green.jmp y luego subconjunto estos por columna8 (brillante, claro , oscuro) para crear y guardar archivos
Colores.rojo.brillante.jmp, Colores.rojo.claro.jmp, Colores.rojo.oscuro.jmp, Colores.azul.brillante.jmp, Colores.azul.claro.jmp, Colores.azul.oscuro.jmp, Colores. verde.brillante.jmp, Colores.verde.claro.jmp, Colores.verde.oscuro.jmp.
Las posiciones de las columnas variarían.
Gracias !!!
Re: Subconjunto de secuencias de comandosEso todavía no funcionó. También agregué más tiempo (30), (90), etc. Pude hacer que los archivos se guardaran protegidos, lo que significa que no podía cerrarlos sin indicar si debían guardarse o no, pero el nombre seguía siendo un subconjunto del subconjunto de myfile 2 3.jmp, etc. Estoy pensando que la lista de variables de subconjunto está desactivada de alguna manera. Solucionaré más problemas durante el fin de semana y puedo buscar ayuda aquí de alguien acostumbrado a trabajar con nuestra versión de JMP.
¡Muchas gracias por su ayuda y consejos y que tenga un gran fin de semana, MS!
Re: Subconjunto de secuencias de comandosPodría ser un problema de rendimiento. Intente insertar un comando Wait(0) dentro de ambos For-loops para asegurarse de que las tablas estén completas antes de que JMP intente guardarlas.
Re: Subconjunto de secuencias de comandosEsto es extraño. La ruta es correcta porque la usé para abrir un dt en el mismo directorio. Crea todos los archivos, pero tienen nombres como "Subconjunto de subconjunto de MyFile 2 3.jmp", "Subconjunto de subconjunto de MyFile 2 2.jmp", etc. Estos archivos son exactamente lo que quiero y es sorprendente que este script los crea, desafortunadamente no los nombra correctamente ni los guarda. En el peor de los casos, los nombro manualmente, ¡lo que aún me ahorra mucho tiempo!
Gracias por tus esfuerzos.
eric
Re: Subconjunto de secuencias de comandosAcabo de probar el script en JMP 9.0.3 y funcionó perfectamente, como en JMP 10.
Compruebe su variable de ruta. Debe ser una cadena y comenzar y terminar con /.
Por ejemplo, en mi Mac esto funciona: myPath = "/Users/MS/Desktop/"
Re: Subconjunto de secuencias de comandosHola señorita,
¡Eso estuvo muy cerca!Creó todos los subconjuntos, pero no guardó ninguna de las tablas. Recibí este mensaje: No se puede guardar el archivo. Objetivo de datos desconocido.
Estoy usando JMP 9, así que me pregunto si hay una diferencia en un comando para crear el archivo o si estoy haciendo algo incorrectamente. Puse la ruta correcta en el script.
Gracias,
eric
Re: Subconjunto de secuencias de comandosAl menos en JMP 10 hay una casilla de verificación "Subconjunto por". Si se selecciona, se generan automáticamente subconjuntos para cada nivel de columna(s) seleccionada(s). Es fácil implementar esa función en JSL si se conoce el número de columnas. Sin embargo, generalizar esto fue más complicado de lo que imaginaba.
Sin embargo, este enfoque, basado en la inserción de subconjuntos generados secuencialmente en listas (dentro de listas), parece funcionar:
//Tabla de ejemplo
dt = Nueva tabla ( "Color" ,
Agregar filas ( 12 ) ,
Nueva columna ( "Color" ,
Personaje ,
Nominal ,
Establecer valores ( { "rojo" , "rojo" , "rojo" , "rojo" , "azul" , "azul" , "azul" , "azul" , "azul" , "verde" , "verde" , "verde" } )
) ,
Nueva columna ( "Intensidad" ,
Personaje ,
Nominal ,
Establecer valores (
{ "brillante" , "brillante" , "oscuro" , "luz" , "luz" , "luz" , "luz" , "oscuro" , "oscuro" , "oscuro" , "luz" , "brillante" }
)
) ,
Nueva columna ( "Finalizar" ,
Personaje ,
Nominal ,
Establecer valores (
{ "Mate" , "Blanco" , "Mate" , "Blanco" , "Mate" , "Blanco" , "Mate" , "Blanco" , "Mate" , "Blanco" , "Mate" , "Blanco" }
)
) ,
Nueva columna ( "Colensidad" , Personaje , Nominal )
) ;
Por cada fila ( : colenidad = Color || Intensidad || Finalizar ) ; // Solo por comprobar que funciona...
// Fin de la tabla de ejemplo
// El guión comienza aquí
columnas = { Color , Intensidad , Finalizar } ; // Cualquier número de subconjuntos por columnas (en orden jerárquico)
Nuevo Testamento = N Mesa () ; //número de mesas abiertas actualmente
subLista = Lista de evaluación ( { dt << subconjunto ( por ( columnas [ 1 ] ) )} ) ; //Subconjuntos de primer nivel
//Hacer subconjuntos de nivel inferior recursivamente
Para ( i = 2 , i <= N artículos ( columnas ) , i ++,
Insertar en ( subLista , Lista de evaluación ( { evaluar ( subLista [ i - 1 ] ) << subconjunto ( por ( columnas [ i ] ) )} ) )
) ;
// nombre y guarde todos los subconjuntos
mi camino = "camino" ; //cambiar a la ruta deseada
Para ( i = 1 , i <= N Mesa () - Nuevo Testamento , i ++,
televisor = Tabla de datos ( i ) << obtener nombres de variables de tabla ; // Los niveles se almacenan como variables de tabla
subnombre = {} ;
Para ( j = 1 , j <= N artículos ( televisor ) , j ++,
Insertar en ( subnombre , Tabla de datos ( i ) << obtener variable de tabla ( televisor [ j ] ) )
) ;
Insertar en ( subnombre , dt << obtener nombre ) ;
Invertir en ( subnombre ) ;
Tabla de datos ( i ) << ahorrar ( mi camino || Artículos combinados ( subnombre , "." ) ) ;
) ;
// Terminar Script //cerrar todo(tablas de datos);
Re: Subconjunto de secuencias de comandosGracias PMroz,
El problema es que necesito mantener los archivos intermedios y el ejemplo que di fue inventado, los nombres de las columnas cambiarían cada vez.
Gracias,
eric
Re: Subconjunto de secuencias de comandosTengo una aplicación en la que necesito crear subconjuntos de un gran conjunto de datos de varias maneras diferentes y ejecutar el mismo análisis en cada subconjunto.En lugar de crear conjuntos de datos separados, utilizo una combinación de SELECCIONAR y EXCLUIR para que los datos del conjunto de datos grande estén listos para el análisis.Por ejemplo:
dt = Nueva tabla ( "Ejemplo de colores" ,
Agregar filas ( 12 ) ,
Nueva columna ( "Color" , Personaje , Nominal ,
Establecer valores (
{ "rojo" , "rojo" , "rojo" , "rojo" , "azul" , "azul" , "azul" , "azul" , "azul" ,
"verde" , "verde" , "verde" } ) ) ,
Nueva columna ( "Intensidad" , Personaje , Nominal ,
Establecer valores (
{ "brillante" , "brillante" , "oscuro" , "luz" , "luz" , "luz" , "luz" , "oscuro" ,
"oscuro" , "oscuro" , "luz" , "brillante" } ) ) ) ;
no. = filas ( dt ) ;
lista_de_colores = { "rojo" , "azul" , "verde" } ;
lista_intensidad = { "brillante" , "luz" , "oscuro" } ;
para ( i = 1 , i <= artículos ( lista_de_colores ) , i ++,
un color = lista_de_colores [ i ] ;
para ( k = 1 , k <= artículos ( lista_intensidad ) , k ++,
una_intensidad = lista_intensidad [ i ] ;
// Excluir todas las filas que no coincidan con este color e intensidad
dt << selecciona donde ( : Color == un color & : Intensidad == una_intensidad )
<< invertir selección de fila << Excluir ;
seleccionado = nr- filas ( dt << Obtener filas seleccionadas ) ;
dt << borrar seleccionar ;
si ( seleccionado > 0 ,
// Haga su análisis en dt aquí.Solo se utilizarán las filas no excluidas.
// El único comando que he encontrado que ignora las filas excluidas es Tablas >> Resumen
imprimir ( "# filas: " || carbonizarse ( seleccionado ) || " color: " || un color ||
" intensidad: " || una_intensidad ) ;
) ;
// Limpiar para la próxima selección
dt << Borrar estados de fila ;
) ;
) ;