Scripting: Recuperar columnas de ciertos nombres de una tabla de datos<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Tengo una tabla de datos (importada de Excel) donde algunos nombres de columna tienen un formato de fecha (por ejemplo, 14 de septiembre). Pero también hay otras columnas. Adjunto encontrará la tabla de datos jmp Example1. Hay dos cuestiones.
Primer problema:
Necesito apilar las columnas de fecha para tenerlas, por ejemplo, como X en un análisis del Generador de gráficos. Esto no es muy difícil (script en Example1, pero la tabla será un documento vivo y se agregarán nuevas columnas a medida que avanzan los meses y, por lo tanto, no puedo utilice el script automatizado con columnas codificadas de forma rígida.
Necesito extraer esos nombres de columna con una estructura de fecha (Mes AA) y apilarlos. Intenté usar Obtener nombre de columna que extrae la lista de columnas:
colNames = Tabla de datos ( "Ejemplo 1" ) << Obtener nombres de columna ;
show (COLN ames ) ;
Pero no pude extraer solo los que me interesa apilar. Pensé en Regex () pero no pude ejecutarlo de la manera que me gustaba.
Segundo problema:
Entonces aparece el siguiente problema. El tipo de datos será carácter y nominal. Me gustaría que fuera numérico y ordinal (o al menos de carácter y ordinal pero en la serie correcta). Al cambiar la propiedad a numérica, obtuve muchos valores faltantes, pero no todos.
No estoy seguro de qué hago mal aquí.
Gracias por tu ayuda,
Martín
Re: Scripting: Recuperar columnas de ciertos nombres de una tabla de datosHola don
Ahora entiendo mejor la fórmula de expresiones regulares que ha utilizado. Creo que puedo ajustarlo a un propósito general agregando condiciones, por ejemplo, en caso de que haya una mezcla entre los nombres de las variables con "Mes YY", "DD Mes YY", "DD.MM.YY" y así sucesivamente y ajustarlo a el formato final.
Lo mejor sería tener un formato de entrada coherente para los nombres de las variables que conoce JMP.
Gracias por tu ayuda, me pusiste en el camino correcto con tu ejemplo. ¡Gracias!
Martín
Re: Scripting: Recuperar columnas de ciertos nombres de una tabla de datosHola don
Llegué alrededor de la transferencia de fecha usando una construcción if, ya que el recuento de palabras depende de si hay un número inicial o no:
Tabla de datos actuales () << Nueva columna ( "Nueva fecha" ,
Numérico ,
Ordinal ,
Formato ( "ddMonYYYY" ) ,
Fórmula(
Si ( Está perdido ( Num ( Palabra ( 1 , : Dato ) ) ) ,
Fecha DMY (
1 ,
Partido ( Palabra ( 1 , : Dato ) ,
"Januar" , 1 ,
"Februar" , 2 ,
"März" , 3 ,
"Abril" , 4 ,
"Mai" , 5 ,
"Juni" , 6 ,
"Juli" , 7 ,
"Agosto" , 8 ,
"Septiembre" , 9 ,
"Oktober" , 10 ,
"Noviembre" , 11 ,
"Dezember" , 12 ,
13
) ,
2000 + Num ( Palabra ( 2 , : Dato ) )
) ,
Fecha DMY (
Num ( Palabra ( 1 , : Dato ) ) ,
Partido ( Palabra ( 2 , : Dato ) ,
"Januar" , 1 ,
"Februar" , 2 ,
"März" , 3 ,
"Abril" , 4 ,
"Mai" , 5 ,
"Juni" , 6 ,
"Juli" , 7 ,
"Agosto" , 8 ,
"Septiembre" , 9 ,
"Oktober" , 10 ,
"Noviembre" , 11 ,
"Dezember" , 12 ,
13
) ,
2000 + Num ( Palabra ( 3 , : Dato ) )
)
)
)
) ;
Pero todavía tengo problemas con la fórmula de expresiones regulares para crear la lista regNames.
Martín
Re: Scripting: Recuperar columnas de ciertos nombres de una tabla de datosHola don
Traté de trabajar con tu ejemplo. Sin embargo, obtengo una lista de regNames vacía y, por lo tanto, el script de pila me pide que ingrese todos como anteriormente. Esto da como resultado una tabla de datos en la que el script para la nueva columna no funcionaría debido a que faltaba una lista. Además, la Transformación de fecha tampoco me funciona.
¿Lo ha intentado y funcionó para usted? ¿Qué configuración para el idioma usaste?
Gracias,
Martín
Re: Scripting: Recuperar columnas de ciertos nombres de una tabla de datosMartín,
Adjunto un guión que debería resolver los problemas que tiene. Regex es particularmente complicado de usar en JSL y varía un poco de las expresiones regulares estándar (aunque está bastante cerca, en su mayoría le falta alguna funcionalidad). Los problemas de fecha ocurren porque JMP no reconoció las fechas como información disponible, al menos no las vi en mi versión. Mi solución analizó el nombre y creó una nueva columna con fechas numéricas. Hay soluciones alternativas, aunque creo que esta sería la más sencilla. !