Création d'une variable de tempsBonjour à tous,
Je suis relativement nouveau dans le monde JMP et j'essaie de travailler sur un ensemble de données.
Je suis en train d'essayer de créer un moyen de mesurer le temps d'un essai dans mes données. Pour ce faire, j'ai créé une variable Lag, qui m'indique quand un nouveau procès commence. J'ai maintenant essayé de créer une variable qui me donnera le nombre de présentations de la manipulation dans chaque essai afin que je puisse ensuite l'utiliser pour éventuellement obtenir la mesure du temps dans chaque essai. J'ai configuré ce processus comme une déclaration si, puis en pensant que cela fonctionnerait, mais je n'ai pas encore eu de chance d'atteindre le point final souhaité. Le code actuel est ci-dessous.
If( :Lag1 == 1, 1,
:Lag1 == 0, Empty () )
Je veux que la nouvelle variable soit égale à 1 lorsque la variable Lag1 est égale à 1. Lorsque Lag1 est égal à 0, je veux qu'il compte jusqu'à ce qu'il atteigne le prochain lag1 == 1, dans lequel il devrait recommencer avec une nouvelle séquence de comptage. J'ai essayé de nombreuses fonctions différentes dans les scripts JMP et j'ai eu de la chance jusqu'à présent.
Toute aide est grandement appréciée!
Re : Créer une variable de temps
D'accord. Ainsi, lorsque vous regardez uniquement la zone sélectionnée. Je voudrais:
Nback#=1, durée=14303912, Durée cumulée=0
Nback#=2 , durée=14305914, Durée cumulée=2002
Nback#=3 , durée=14307916, Durée cumulée=4004
Nback#=4 , durée=14309965, Durée cumulée=6053
Nback#=5 , durée=14312015, Durée cumulée=8103
Nback#=6 , durée=14314051, Durée cumulée=10139
J'espère que cela aide à rendre tout plus clair. C'est ce que je souhaiterais idéalement dans cette nouvelle création de colonne.
Re : Créer une variable de tempsIl y a une durée pour ce premier cas.Alors, à quoi cela devrait-il ressembler lorsque Nback# vaut 2 ?La somme de la durée pour 1 et pour 2 ?
Voulez-vous que cette colonne soit la durée cumulée ? Y a-t-il une durée lorsque Nback# vaut 1 ?
Peut-être avez-vous besoin d'ajouter une ligne Nback# 0 pour chaque instance, où la durée est nulle.
Votre demande n'est pas claire.Créez un exemple de 5 lignes de Nback#, de la durée et de cette durée cumulée, afin que ce soit clair ce qui est nécessaire.
Re : Créer une variable de tempsje veux la valeur pour Nback # of Letters Presented ==1 to be 0. La colonne actuelle mesurant Nback Start est un total cumulé, mais je veux savoir combien de temps s'est écoulé pour chaque présentation nback au cours de cet essai. Pour ce faire, j'aimerais que le début de chacun soit 0 afin que je puisse également faire des comparaisons entre plusieurs essais.
Re : Créer une variable de tempsJe ne pense pas que vous vouliez 0 lorsque Nback # of Letters Presented ==1. Vous ne voulez pas la durée de cette ligne ?Voici une capture d'écran, et la formule


If( :Nback # of Letters Presented == 1,
:Duration,
Lag( :Cumulative Duration, 1 ) + :Duration
)
Re : Créer une variable de tempsJ'ai un deuxième problème lors de la création de cette mesure globale du temps. J'ai joint une capture d'écran qui montre à quoi ressemblent les données jusqu'à présent. Je dois maintenant créer une variable appelée "temps d'essai" où je prends essentiellement le "Nback start" moins le "Nback stop".
Plus précisément, j'aurais besoin de plusieurs choses pour se produire.
1. Lorsque "Nback # de lettres présentées" est égal à 1, le "temps d'essai" doit être égal à 0. Puis comme le "Nback # de lettres présentées" augmente le "temps en procès" devrait également augmenter.
2. Cette augmentation devrait s'arrêter lorsque j'atteindrai un autre 1 dans "Nback # of letter presented" et que je recommencerai à 0 pour "time in trial".
Toute orientation serait grandement appréciée.
Re : Créer une variable de tempsMes données ont été configurées comme l'image de droite et comme vous l'avez dit, le script que vous m'avez donné a fonctionné !
Je vous remercie beaucoup pour votre aide. Je l'apprécie grandement !
Re : Créer une variable de tempsVos données semblent triées. Il doit y avoir une colonne qui représente un essai unique, le début et la fin.Si vos données ressemblent à l'image de gauche, c'est ce que je voulais dire, j'aurais peut-être dû l'appeler essais mixtes.
Si vos données ressemblent à celles de gauche, la ligne 8 d'un essai A aurait-elle un 1 ?Si oui, cet essai ne dure-t-il qu'une période ou le décompte des A doit-il continuer ?
Si vos données ressemblent au tableau de droite, la fonction que j'ai envoyée fonctionne comme vous l'avez décrite et s'affiche dans la capture d'écran
Not sorted by TrialNon trié par Essai
Sorted by trials and function Trié par essais et fonction
Re : Créer une variable de tempsJ'utilise une fonction de décalage pour identifier le début et la fin de chacun des essais. Chaque sujet aura 4 essais chacun, et les 1 et les 0 ne sont pas séparés les uns des autres, ils sont entrelacés dans les données globales du sujet. La durée de chaque essai variera en fonction de la durée de cet essai spécifique et n'est pas la même pour chaque participant.
Pour cette raison, je ne suis pas sûr que ce que vous avez suggéré fonctionnera complètement pour l'ensemble de données que j'ai. Il y a un exemple de ce que je veux dire par mes 0 et 1 entrelacés dans mon ensemble de données, si cela est utile.
Merci pour la réponse!

Re : Créer une variable de tempsCréez une nouvelle colonne, ici je l'ai appelée :Group Order, voici la fonction. Remarque JMP a une fonction appelée lag() au cas où vous ne la connaîtriez pas.
If( row()==1 | :Lag1==1, 1,
:Lag1==0, lag(:Group Order)+1
)
Cela suppose bien sûr que votre table est triée. Voici un script, qui commence par changer Big Class pour avoir une mise en page comme votre table avec :Lag1. Crée ensuite la colonne avec la fonction ci-dessus.
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>