Trouver la différence de temps entre les lignesBonjour,
Je suis en train de mettre en place un script. L'une des étapes consiste à déterminer si le « timestamp » se situe dans les 30 minutes de la ligne au-dessus ou en dessous, en les classant par ordre séquentiel par UCN. Évidemment, j'ai besoin que cela inclue la date et l'heure. Vous trouverez ci-dessous le script/la formule que j'utilise. Mais lorsque je le fais, il ne regarde que les heures et ne prend pas en compte l'UCN ou la date. Vous pouvez voir dans ma colonne « 30 minutes » qu'il n'identifie pas correctement.
Ceci est configuré de telle sorte que les UCN soient ceux qui se trouvent à 5 chiffres l'un de l'autre. Mais j'ai ensuite besoin de déterminer si ces UCN ont un horodatage dans les 30 minutes de ceux qui se trouvent à moins de 5 chiffres. J'espère que cela a du sens. Donc, si vous regardez les lignes 12 et 13, il est indiqué qu'elles correspondent en fonction de l'horodatage, mais ce n'est pas le cas car elles ont des codes de centre différents et les UCN ne sont pas séparés de 5 chiffres. Les lignes 11 et 12 sont à 5 chiffres près pour l'UCN, mais l'heure est à plus de 30 minutes d'intervalle, donc elle ne devrait pas être identifiée comme un « 1 »/rouge dans la colonne « heure dans les 30 ».
// New column: Time within 30
Data Table("Time within 30 minutes") << New Column("Time within 30",
Numeric,
"Continuous",
Format("Best", 12),
Formula(
If(
Dif(Num(:Unit Entry Timestamp), 1) <= 30 | Abs(Dif(Num(:Unit Entry Timestamp), -1))
<= 30,
1,
0
)
)
) << Move Selected Columns({:Time within 30}, after(:Positive or Negative));
// Change column info: Time within 30
Data Table("Time within 30 minutes"):Time within 30 <<
Set Property("Value Colors", {0 = 2, 1 = 3}) << Color Cell by Value(1);
Automatisation et scriptsExploration et visualisation des donnéesFenêtresRe: Trouver la différence de temps entre les lignesCréez une nouvelle colonne dans laquelle vous combinez la date et l'heure (date + heure), puis fixez votre UCN Pos à numérique s'il s'agit de nombres. Vous devriez alors pouvoir utiliser une idée similaire à celle que vous avez pour votre comparaison de temps avec le UCN Pos et la nouvelle colonne d'horodatage.
Re: Trouver la différence de temps entre les lignesN'oubliez pas non plus de comparer en secondes, car c'est ainsi que JMP gère le temps. Vous pouvez par exemple utiliser In Minutes(30) pour convertir 30 minutes en secondes (ou simplement utiliser 30*6)
Re: Trouver la différence de temps entre les lignesJ'ai besoin qu'ils restent comme valeurs de caractère car j'ai besoin des 0 initiaux.
Re: Trouver la différence de temps entre les lignesOk, dans ce cas, créez une nouvelle colonne numérique pour eux ou utilisez Num pour la conversion (bien sûr, vos 5 chiffres d'écart peuvent signifier autre chose que la différence numérique entre eux).
Pouvez-vous fournir toutes les règles que vous avez par ordre d'importance, par exemple, je ne sais pas comment les codes centraux sont liés à cela (vous les avez mentionnés)
- Vous souhaitez rechercher des lignes qui ont des valeurs UNC avec une différence maximale de 5 (je suppose que c'est ce que signifie avoir 5 chiffres de différence)
- Ensuite, vous voulez des valeurs espacées de 30 minutes maximum lors du remplissage de la règle 1
- Codes centraux ?
- Autre chose?
Re: Trouver la différence de temps entre les lignesLes règles que vous avez définies sont assez correctes. Le code du centre est simplement l'identifiant de chaque centre. Le code du centre correspond aux 3 premiers chiffres de l'UCN si cela peut vous aider. Je l'ai déjà dans mon script et dans mon fichier principal (qui est énorme) pour filtrer d'environ 12 000 lignes à ces 120. Celui-ci fait les UCN avec 5 chiffres.
L'étape suivante consiste à déterminer si les UCN similaires ont un horodatage à moins de 30 minutes d'intervalle (pour le même centre et à moins de 5 chiffres de l'UCN). C'est ce que j'essaie de comprendre comment faire. La formule que j'utilise actuellement et qui ne fonctionne pas doit être répertoriée dans l'option de formule de colonne dans le tableau que j'ai téléchargé plus tôt.
Re: Trouver la différence de temps entre les lignesJe ne suis pas sûr que cette formule soit correcte car elle est en profond désaccord avec votre formule
Current Data Table() << New Column("R", Numeric, Nominal, Formula(
If(:Center Code == Lag(:Center Code) | :Center Code == Lag(:Center Code , -1),
If(Min(Abs(Dif(Num(:Pos UCN))), Abs(Dif(Num(:Pos UCN), -1))) <= 5,
Min(Abs(Dif(:Unit Entry Timestamp)), Abs(Dif(:Unit Entry Timestamp, -1))) <= In Minutes(30)
,
0
)
,
0
);
));

Re: Trouver la différence de temps entre les lignesC'est la formule que j'ai pour obtenir mon résultat dans les 5 colonnes
Si( Dif( Num( :Pos UCN ), 1 ) <= 5 | Abs( Dif( Num( :Pos UCN ), -1 ) ) <= 5,
1,
0
)
Re: Trouver la différence de temps entre les lignesJe viens de réaliser que je n’avais pas inclus cette colonne dans ma question initiale.
Re: Trouver la différence de temps entre les lignesCette formule était EXACTEMENT ce dont j'avais besoin !!!!! Merci !!!