¿Ayuda para transformar una tabla y convertir una marca de tiempo?así que tengo una tabla de datos de un sensor que no estoy muy seguro de cómo formatearla correctamente. Es un sensor de luz que emite lecturas de voltaje.
La primera columna de la tabla es la longitud de onda medida y luego hay más de 100 columnas para cada instancia de tiempo que mide datos.
¿Cómo haría para transformar o pivotar esto correctamente? ¿Sería una simple transposición de tabla la actividad correcta?
A continuación, ¿consejos sobre cómo convertir la marca de tiempo sin procesar en una serie de tiempo utilizable? Sale luciendo así.
DD-MM-YYYYTHH: MM: SS. ### Z
¿Qué puedo hacer para convertir esto en un valor de serie temporal utilizable para trazar como un eje x? Se reduce a la milésima de segundo, incrementos de 0,1 segundos.
Bonificación, ¿cómo hacer esto para encontrar el mínimo y el máximo y normalizar el tiempo para que sea 0 -> máximo?
...
14-07-2020T22:47:31.400Z
14-07-2020T22:47:31.500Z
14-07-2020T22:47:31.600Z
14-07-2020T22:47:31.700Z
14-07-2020T22:47:31.800Z
14-07-2020T22:47:31.900Z
...
Tabla de datosGráficosScriptingRe: ayuda para transformar una tabla y convertir una marca de tiempo?Creo que todo lo que necesitas es Tablas-> Pila poner sus columnas de tiempo en el rol de Columnas de pila.
Debería terminar con dos columnas, longitud de onda y tiempo.
En cuanto a convertir su marca de tiempo en una columna de fecha y hora JMP, Palabra() y Informat () son mi ir a aquí:

Otras lecturas:
Si aprende solo una función del Editor de fórmulas, Word () es la
Uso de fechas, horas, fechas y duraciones en JMP
Re: ayuda para transformar una tabla y convertir una marca de tiempo?Con respecto a sus datos, le sugiero que consulte Apilado de columnas. Ese formulario le brindará más herramientas JMP para el análisis.
Con respecto a su problema de marca de tiempo ... aquí hay un script de ejemplo que toma una columna de entrada llamada "TS" y la convierte en una columna de fecha / hora JMP.
Names default to here(1);
dt = New Table( "Example",
Add Rows( 6 ),
New Column( "TS",
Character,
"Nominal",
Set Values(
{"14-07-2020T22:47:31.400Z", "14-07-2020T22:47:31.500Z",
"14-07-2020T22:47:31.600Z", "14-07-2020T22:47:31.700Z",
"14-07-2020T22:47:31.800Z", "14-07-2020T22:47:31.900Z"}
)
)
);
dt << New Column( "Column 2",
Numeric,
"Continuous",
Format( "d/m/y h:m:s", 26, 3 ),
Input Format( "d/m/y h:m:s", 0 ),
Formula( Informat( Word( 1, :TS, "Z" ), "d/m/y h:m:s" ) )
);Re: ayuda para transformar una tabla y convertir una marca de tiempo?Jeff,
Supongo que mi edad se está mostrando ... me adelantaste en la respuesta de nuevo.
Re: ayuda para transformar una tabla y convertir una marca de tiempo?Gracias Jim y Jeff, ¡funcionan muy bien! Estoy leyendo sobre la palabra () ahora mismo.
Pregunta sobre las marcas de tiempo: ¿cómo convertiría esto en una duración de tiempo sin procesar? Veo que existe la fórmula "Diferencia de fecha", pero parece que necesita dos columnas. ¿Cómo hago para que esta sea una serie de tiempo que comienza en 0.000s -> tiempo máximo?
Pregunta sobre la secuencia de comandos del comando de pila: mirando la secuencia de comandos, tiene una fila única para cada columna ... ¿cómo hacer esto dinámico para la próxima vez que extraiga este archivo de datos?
Data Table( "Sheet1" ) << Stack(
columns(
:Name( "14-07-2020T22:47:31.400Z" ),
:Name( "14-07-2020T22:47:31.500Z" ),
:Name( "14-07-2020T22:47:31.600Z" ),
....for every column...
),
Source Label Column( "TimeStamp" ),
Stacked Data Column( "data" ),
Output Table( "sensor table" )
)
Re: ayuda para transformar una tabla y convertir una marca de tiempo?Para convertir una columna de marca de tiempo (fecha / hora de JMP) en solo un valor de hora, utilice la función Hora del día (). Devuelve efectivamente el número de segundos desde la medianoche anterior hasta la hora de la medición.
Con respecto al apilamiento cuando los nombres de las columnas cambian de un día a otro ... es una cuestión simple obtener una lista de las columnas en la tabla de datos y luego aplicar esa lista a las declaraciones de la plataforma de pila. El mensaje para pasar a la tabla de datos para recuperar los nombres de las columnas es dt << get column names ().
¿Sería posible adjuntar una tabla de datos de muestra o una hoja de cálculo de sus datos? Es bastante difícil ver los detalles de los datos de entrada, lo que puede resultar en la transmisión de direcciones falsas.Re: ayuda para transformar una tabla y convertir una marca de tiempo?Consulte el subconjunto adjunto (preapilado).
Entiendo la hora del día, pero luego necesito protegerme de las condiciones en las que se produce una carrera a medianoche y cambia el día Lo estoy poniendo a cero haciendo [hora del día () - col mínima (hora del día ())
Re: ayuda para transformar una tabla y convertir una marca de tiempo?Aquí hay un pequeño script que debería darle una buena "ventaja" para obtener sus datos en un formato analítico. Toma su tabla de datos de muestra y crea:

names default to here(1);
dt=current data table();
// Get the column names from the data table
colNames = dt << get column names;
// Remove Lamda from the list
remove from(colNames,1,1);
// Stack the data
dtStack = dt << Stack(
columns(
colNames
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Output Table( "Stacked" )
);
// Create a new JMP DateTime column
dtStack << New Column( "Timestamp",
Numeric,
"Continuous",
Format( "d/m/y h:m:s", 26, 3 ),
Input Format( "d/m/y h:m:s", 0 ),
Formula( Informat( Word( 1, :Label, "Z" ), "d/m/y h:m:s" ) )
);
// Remove formula to convert column to static values
dtStack:Timestamp << delete formula;
// Create the Time variable
dtstack << New Column( "Time",
Numeric,
"Continuous",
Format( "hr:m:s", 17, 3 ),
Input Format( "hr:m:s", 0 ),
Formula( Time Of Day( :Timestamp ) )
);
// Get rid of no longer needed "Label" column
dtStack << delete columns( "Label" );
Re: ayuda para transformar una tabla y convertir una marca de tiempo?¡Impresionante Jim!
algunas preguntas para ver lo que piensas:
- ¿Cómo protegerse de una carrera que pasa de la medianoche al día siguiente? el uso de la hora del día para obtener un tiempo absoluto o normalizarlo para que comience en cero se vería afectado por una ejecución que abarque 2 días.
- ¿Piensas convertir Lambda col en una columna de caracteres? Es esencialmente una etiqueta, por lo que no debería ser numérica, ¿verdad? Está midiendo en varias longitudes de onda t luego grafica los datos v tiempo.
- ¿Cómo podría incrustar el archivo original en la tabla de datos recién creada? Cambié el dt inicial = -> a un diálogo de apertura de archivo.
