Hola a todos,
Soy muy nuevo en el uso de software estadístico más potente y estoy aprendiendo poco a poco. Soy bueno implementando retroalimentación, pero no tan bueno en mi propia investigación.
Trabajo con pilas. Recopilamos una tonelada de datos y utilizamos diferentes pruebas según lo que queramos averiguar. Los datos generados son de naturaleza cíclica, ya que cargamos la celda, la descansamos, la descargamos y la descansamos nuevamente. Estos se llaman pasos.
En una prueba (las llamo corridas), podemos tener varios ciclos en un régimen, luego varios ciclos en otro. Por lo tanto, es importante para mí poder rastrear las respuestas (corrientes, voltajes, capacidades, energías, etc.) como factores de ciclos, pasos y corridas.
En mi consulta: necesito una fórmula de columna que comience en 11 y luego aumente en un valor de 1 cada 4 filas. Esta columna hará un seguimiento del número total de ciclos en varias ejecuciones. La razón por la que necesita incrementarse en 4 es que esa es la cantidad de pasos que hay en cada ciclo.
Para aclarar más, permítanme dar un ejemplo.
La columna 1 está etiquetada como Ejecutar. Realiza un seguimiento del número de una prueba en particular en serie.
La columna 2 está etiquetada como Número total de ciclos. Esta es la columna que necesito codificar correctamente.
La columna 3 está etiquetada como Número de ciclo real. Describe el número de ciclo de una prueba en particular. Estos valores son cíclicos y vuelven a 1 al comienzo de cada nueva ejecución. Su límite superior no es consistente. Los valores también se repiten dependiendo de cuántos pasos haya en cada ciclo. Un ejemplo de los valores sería 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,1,1,1,1,2,2 ,2,2, etc
La columna 5 tiene la etiqueta RawStepID. Se restablece a 1 al comienzo de cada ciclo. Un ejemplo sería 1,2,3,4,1,2,3,4,1,2,3,4, etc.
La columna 6+ es cualquier dato que se obtenga.
Mi enfoque hasta ahora para la Columna 2 ha sido tratar de preparar una instrucción IF con una variable local. Quiero que incremente esta variable en un valor de 1 cada vez que RawStepID == 1. Necesito que comience en 11, luego se convierta en 12 cuando RawStepID=1, se convierta en 13 la próxima vez que RawStepID=1, etc. Luego necesito la fórmula para mostrar el valor actual de la variable.
Es decir, si uso los datos que escribí para la Columna 3, necesito que los valores de esta columna se conviertan en
11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17, 17,17,17,18,18,18,18, etc
Espero que esto sea claro. Mientras tanto, intentaré averiguar cómo incluir una tabla en una publicación del foro, como he visto que hacen otros miembros, o en su defecto, crearé una tabla ficticia para adjuntarla aquí.
Gracias,
Antílope Asustado.
Hola @ih ,
¡Gracias! El segundo enfoque que proporcionó es exactamente lo que estaba tratando de implementar. No compartiré cómo se veía mi código, pero les puedo asegurar que era un espagueti del tipo más hervido.
Si entiendo correctamente, también es una solución muy flexible. Puedo cambiar el número inicial de la fila cambiando el 11 en la línea 2, puedo cambiar el incremento cambiando el retraso del número de ciclo total al final de la línea 3, y puedo ver cómo adaptar este código para incrementar, por ejemplo, el Ejecute el valor cada vez que el número de ciclo real vuelva a 1.
If(
Row() == 1, 23,
:ActualCycleNumber == 1 & Lag ( :ActualCycleNumber ) != 1, Lag ( :Run ) + 1,
Lag ( :Run )
)
No entiendo el efecto de la segunda condición para el incremento del número total de ciclos. O cómo usar Lag en general. ¿Podría explicarme o señalarme un buen recurso para aprender tales principios?
Hola @statman
Ese es el caso de este escenario en particular, sí. Sin embargo, el número total del ciclo es algo que utilizo mucho en las consultas para realizar un seguimiento de los datos en varias ejecuciones. Entonces, por ejemplo, podría tener esta tabla que es específica para la Ejecución 1 y otra tabla para datos específicos de la Ejecución 2. En ambos, el número de ciclo real comenzará en 1 y aumentará hasta lo que sea (definido dentro de la prueba). Sin embargo, el número total de ciclos comenzará con la suma acumulada de los números reales de ciclos experimentados por esa batería en todas las ejecuciones.
Otra forma de verlo es que el número de ciclo real son los datos sin procesar que obtengo de mi software experimental, mientras que el número de ciclo total son datos procesados. Y un último ejemplo:
La ejecución 1 contiene 30 ciclos. En este caso, tanto el ciclo total como el número de ciclo real comenzarán en 1 y terminarán en 30. La ejecución 2 contiene 15 ciclos. El número total de ciclos comenzará en 31 y finalizará en 45. El número de ciclo real comenzará en 1 y finalizará en 15. La ejecución 3 contiene 102 ciclos. El total comienza en 46, termina en 147, el real comienza en 1 y termina en 102, etc., etc. A menudo, este tipo de incremento ocurre dentro de la misma tabla de datos. Hacer un seguimiento del número total de ciclos en todas las ejecuciones es muy útil para el análisis, ya que es uno de los factores clave para el estado de la batería.
¡Espero que eso aclare mi necesidad de los datos tal como están!
¿Qué preguntas estás tratando de responder? Un vistazo rápido, la columna 2 (11,11,11,11,12...) se confundirá con la columna 1 (1,1,1,1,2...) por lo que esto no sería útil. Cada columna debe ser una X o Y única.
Hola @ScaredAntelope ,
Dos formas de acercarse a la columna 2 'Número de ciclo total' podrían ser definirla explícitamente por fila:
11 + Floor( (Row() - 1) / 4 )

o calcúlalo de la forma en que creo que lo estás haciendo ahora:
If(
Row() == 1, 11,
:RawStepID == 1 & Lag( :RawStepID ) != 1, Lag( :Total Cycle Number ) + 1,
Lag( :Total Cycle Number )
)

Tenga en cuenta las dos condiciones requeridas para incrementar el número de ciclo total en la condición intermedia. Puede extender eso para verificar otras columnas también, por ejemplo, tal vez el número de ciclo real también debería ser 1.