Creazione di una variabile di tempoCiao a tutti,
Sono relativamente nuovo nel mondo JMP e sto cercando di lavorare con un set di dati.
Sto cercando di creare un modo per misurare il tempo all'interno di una prova all'interno dei miei dati. Per farlo ho creato una variabile Lag, che mi dice quando inizia una nuova prova. Ora ho tentato di creare una variabile che mi dia il numero di presentazioni della manipolazione all'interno di ogni prova in modo da poterla utilizzare per ottenere eventualmente la misura del tempo all'interno di ogni prova. Ho impostato questo processo come una dichiarazione se, quindi pensando che avrebbe funzionato, ma non ho ancora avuto fortuna per raggiungere il punto finale desiderato. Il codice attuale è sotto.
If( :Lag1 == 1, 1,
:Lag1 == 0, Empty () )
Voglio che la nuova variabile sia uguale a 1 quando la variabile Lag1 è uguale a 1. Quando Lag1 è uguale a 0, voglio che conteggi fino a quando non arriva al successivo lag1 == 1, in cui dovrebbe ricominciare con una nuova sequenza di conteggio. Ho provato molte funzioni diverse all'interno degli script JMP e finora ho avuto fortuna.
Qualsiasi aiuto è molto apprezzato!
Re: Creazione di una variabile di tempo
Bene. Quindi, guardando solo l'area selezionata. Vorrei:
Nback#=1, durata=14303912, Durata cumulativa=0
Nback#=2 , durata=14305914, durata cumulativa=2002
Nback#=3 , durata=14307916, durata cumulativa=4004
Nback#=4 , durata=14309965, durata cumulativa=6053
Nback#=5 , durata=14312015, durata cumulativa=8103
Nback#=6 , durata=14314051, durata cumulativa=10139
Speriamo che questo aiuti a rendere tutto più chiaro. Questo è ciò che vorrei idealmente all'interno di questa nuova creazione di colonne.
Re: Creazione di una variabile di tempoC'è una durata per quel primo caso.Quindi come dovrebbe apparire quando Nback# è 2?La somma della durata per 1 e per 2?
Vuoi che questa colonna sia la durata cumulativa? C'è una durata quando Nback# è 1?
Forse è necessario aggiungere una riga Nback# 0 per ogni istanza, dove la durata è zero.
La tua richiesta non è chiara.Crea un esempio di 5 righe di Nback#, durata e questa durata cumulativa, quindi è chiaro cosa è necessario.
Re: Creazione di una variabile di tempoVoglio il valore per Nback # di lettere presentate ==1 deve essere 0. L'attuale colonna che misura Nback Start è un totale cumulativo, ma voglio sapere quanto tempo è trascorso per ciascuna presentazione di nback all'interno di quella prova. Per fare ciò, vorrei che l'inizio di ciascuno fosse 0 in modo da poter fare confronti anche tra più prove.
Re: Creazione di una variabile di tempoNon penso che tu voglia 0 quando Nback # di lettere presentate ==1. Non vuoi la durata per quella riga?Ecco uno screenshot e la formula


If( :Nback # of Letters Presented == 1,
:Duration,
Lag( :Cumulative Duration, 1 ) + :Duration
)
Re: Creazione di una variabile di tempoHo un secondo problema durante la creazione di questa misura generale del tempo. Ho allegato uno screenshot che mostra come appaiono i dati finora. Ora devo creare una variabile chiamata "time in trial" in cui fondamentalmente prendo "Nback start" meno "Nback stop".
Più specificamente avrei bisogno che accadano diverse cose.
1. Quando "Nback n. di lettere presentate" è uguale a 1, il "tempo di prova" dovrebbe essere uguale a 0. Poi come il "Nback n. di lettere presentate" aumenta anche il "tempo di prova" dovrebbe aumentare.
2. Questo aumento dovrebbe interrompersi quando raggiungo un altro 1 in "Nback n. di lettere presentate" e ricominciare da 0 per "tempo di prova".
Qualsiasi suggerimento sarebbe davvero apprezzato.
Re: Creazione di una variabile di tempoI miei dati sono stati impostati come l'immagine a destra e proprio come hai detto che lo script che mi hai dato ha funzionato!
Grazie mille per il vostro aiuto. Lo apprezzo molto!
Re: Creazione di una variabile di tempoI tuoi dati sembrano ordinati. Ci deve essere una colonna che rappresenti una prova unica, l'inizio e la fine.Se i tuoi dati assomigliano all'immagine a sinistra, è quello che intendevo, forse avrei dovuto chiamarli prove miste.
Se i tuoi dati sembrano a sinistra, la riga 8 una prova A avrà un 1?Se sì, quella prova dura solo 1 periodo o dovrebbe continuare il conteggio di As?
Se i tuoi dati sono simili alla tabella a destra, la funzione che ho inviato funziona come l'hai descritta e viene visualizzata nello screenshot
Not sorted by TrialNon ordinato per prova
Sorted by trials and function Ordinati per prove e funzione
Re: Creazione di una variabile di tempoSto usando una funzione di ritardo per identificare l'inizio e la fine di ciascuna delle prove. Ogni soggetto avrà 4 prove ciascuno e gli 1 e gli 0 non sono separati l'uno dall'altro, sono intrecciati all'interno dei dati generali del soggetto. La durata di ogni prova varierà a seconda della durata di quella specifica prova e non è la stessa per ogni partecipante.
Per questo motivo non sono sicuro che ciò che hai suggerito funzionerà completamente per il set di dati che ho. C'è un esempio di cosa intendo quando i miei 0 e 1 sono intrecciati all'interno del mio set di dati, se è utile.
Grazie per la risposta!

Re: Creazione di una variabile di tempoCrea una nuova colonna, qui l'ho chiamata :Group Order, ecco la funzione. Nota JMP ha una funzione chiamata lag() nel caso in cui non la conosciate.
If( row()==1 | :Lag1==1, 1,
:Lag1==0, lag(:Group Order)+1
)
Questo ovviamente presuppone che la tua tabella sia ordinata. Ecco uno script, che inizia modificando Big Class per avere un layout come la tua tabella con :Lag1. Quindi crea la colonna con la funzione sopra.
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>