Crear una variable de tiempoHola a todos,
Soy relativamente nuevo en el mundo de JMP y estoy tratando de trabajar con un conjunto de datos.
Estoy tratando de crear una forma de medir el tiempo dentro de una prueba dentro de mis datos. Para hacerlo, he creado una variable Lag, que me dice cuándo comienza una nueva prueba. Ahora he estado tratando de crear una variable que me dé la cantidad de presentaciones de la manipulación dentro de cada prueba para que luego pueda usar esto para finalmente obtener la medida del tiempo dentro de cada prueba. He configurado este proceso como una declaración si, entonces pensando que funcionaría, pero aún no he tenido suerte para llegar al punto final deseado. El código actual está debajo.
If( :Lag1 == 1, 1,
:Lag1 == 0, Empty () )
Quiero que la nueva variable sea igual a 1 cuando la variable Lag1 sea igual a 1. Cuando Lag1 es igual a 0, quiero que cuente hasta que llegue al siguiente lag1 == 1, en el que debe comenzar de nuevo con una nueva secuencia de conteo. He probado muchas funciones diferentes dentro de los scripts de JMP y he tenido suerte hasta ahora.
¡Cualquier ayuda es muy apreciada!
Re: Crear una variable de tiempo
Bueno. Entonces, al mirar solo el área seleccionada. Querría:
Nback#=1, duración=14303912, Duración acumulada=0
Nretroceso#=2 , duración=14305914, duración acumulada=2002
Nback#=3 , duración=14307916, duración acumulada=4004
Nretro#=4 , duración=14309965, duración acumulada=6053
Nretro#=5 , duración=14312015, duración acumulada=8103
Nback#=6 , duración=14314051, duración acumulada=10139
Esperemos que esto ayude a que todo quede más claro. Esto es lo que idealmente querría dentro de esta nueva creación de columna.
Re: Crear una variable de tiempoHay una duración para ese primer caso.Entonces, ¿cómo debería ser esto cuando Nback# es 2?¿La suma de la duración para 1 y para 2?
¿Quiere que esta columna sea la duración acumulada? ¿Hay una duración cuando Nback# es 1?
Tal vez necesite agregar una fila Nback# 0 para cada instancia, donde la duración es cero.
Su solicitud no es clara.Cree un ejemplo de 5 filas de Nback#, la duración y esta Duración acumulada, para que quede claro lo que se necesita.
Re: Crear una variable de tiempoquiero el valor de Nback # of Letters Presented ==1 para ser 0. La columna actual que mide Nback Start es un total acumulativo, pero quiero saber cuánto tiempo ha transcurrido para cada presentación de nback dentro de esa prueba. Para hacer esto, me gustaría que el inicio de cada uno sea 0 para poder hacer comparaciones entre múltiples ensayos también.
Re: Crear una variable de tiempoNo creo que quieras 0 cuando Nback # of Letters Presented ==1. ¿No quieres la duración de esa fila?Aquí hay una captura de pantalla y la fórmula.


If( :Nback # of Letters Presented == 1,
:Duration,
Lag( :Cumulative Duration, 1 ) + :Duration
)
Re: Crear una variable de tiempoTengo un segundo problema al crear esta medida general de tiempo. He adjuntado una captura de pantalla que muestra cómo se ven los datos hasta ahora. Ahora necesito crear una variable que se llame "tiempo en prueba" donde básicamente tomo el "Nback start" menos el "Nback stop".
Más concretamente necesitaría que sucedieran varias cosas.
1. Cuando "Nback # de letras presentadas" es igual a 1, el "tiempo en prueba" debe ser igual a 0. Entonces como el "Nback # de cartas presentadas" aumenta el "tiempo en el juicio" también debe aumentar.
2. Este aumento debe detenerse cuando llegue a otro 1 en "Nback # de letras presentadas" y comenzar de nuevo en 0 para "tiempo en prueba".
Cualquier orientación sería muy apreciada.
Re: Crear una variable de tiempoMis datos se configuraron como en la imagen de la derecha y, tal como dijiste, ¡el script que me diste funcionó!
Muchas gracias por tu ayuda. ¡Lo aprecio mucho!
Re: Crear una variable de tiempoTus datos parecen ordenados. Debe haber alguna columna que represente un ensayo único, el inicio y el final.Si sus datos se parecen a la imagen de la izquierda, eso es lo que quise decir, tal vez debería haberlo llamado ensayos entremezclados.
Si sus datos se parecen a los de la izquierda, ¿la fila 8 de una prueba A tendría un 1?En caso afirmativo, ¿esa prueba dura solo 1 período o debe continuar la cuenta de As?
Si sus datos se parecen a la tabla de la derecha, entonces la función que envié funciona como la describió y se muestra en la captura de pantalla.
Not sorted by TrialNo ordenado por prueba
Sorted by trials and function Ordenado por ensayos y función
Re: Crear una variable de tiempoEstoy usando una función de retraso para identificar el comienzo y el final de cada una de las pruebas. Cada sujeto tendrá 4 intentos cada uno, y los 1 y 0 no están separados entre sí, están entrelazados dentro de los datos generales del sujeto. La duración de cada prueba variará dependiendo de la duración de esa prueba específica y no es la misma para cada participante.
Debido a esto, no estoy seguro de que lo que ha sugerido funcione completamente para el conjunto de datos que tengo. Hay un ejemplo de lo que quiero decir con mis 0 y 1 entrelazados dentro de mi conjunto de datos, si eso es útil.
¡Gracias por la respuesta!

Re: Crear una variable de tiempoCree una nueva columna, aquí la llamé: Orden de grupo, aquí está la función. Tenga en cuenta que JMP tiene una función llamada lag() en caso de que no esté familiarizado con ella.
If( row()==1 | :Lag1==1, 1,
:Lag1==0, lag(:Group Order)+1
)
Por supuesto, esto supone que su tabla está ordenada. Aquí hay una secuencia de comandos, que comienza cambiando Big Class para tener un diseño como su tabla con: Lag1. Luego crea la columna con la función anterior.
Names default to here(1);
dt = Open("$sample_data/big class.jmp");
dt << sort( By(:sex, :age), Replace Table);
//needs to be sorted so 1's and 0's are not mixed
dt << New Column("Lag1", numeric, <<SET each="" value=""></SET>