Nombre de lignes jusqu'à l'événementSans utiliser JSL, existe-t-il un moyen de calculer une colonne qui vous indique combien de lignes restent jusqu'à ce qu'un événement se produise ?
La formule suivante fonctionne mais nécessite que l'utilisateur clique n fois dans "Appliquer"
Pouvons-nous mettre cette formule dans une boucle for qui « l'applique » n fois ?

Modélisation statistique avancéeAutomatisation et scriptsIngénierie Qualité et ProcédésRe : Nombre de lignes jusqu'à l'événementRien de simple qui ne nécessiterait pas de JSL ne me vient à l'esprit et qui vous permettrait d'utiliser la formule d'origine sans appuyer sur Appliquer ou utiliser des formules réexécutées plusieurs fois. Même la construction de formules est un peu difficile en raison de l'absence de variables dans ce cas (même la boucle for a une variable pour l'index).
Par exemple, cela ne peut pas facilement gérer les dernières lignes s'il n'y a aucun événement après elles (la formule n'est pas non plus simple à expliquer) :
If(:Event == 1,
0,
For(i = 1, i <= N Rows() - Row(), i++,
If(Lag(:Event, -1*i) == 1,
Break();
);
);
i;
);
Re : Nombre de lignes jusqu'à l'événementJe recherche une formule très simple à expliquer aux nouveaux utilisateurs de JMP.
- Ajouter ma formule originale dans une boucle, pour que vous n'ayez pas besoin de cliquer sur Appliquer, sera le plus simple à expliquer.
- Inverser l'ordre est intuitif mais nécessite des étapes supplémentaires (voir ci-dessus)
- Une solution qui crée des variables temporaires ressemble à un script transformé en formule (état d'esprit du programmeur, pas idéal pour les nouveaux utilisateurs).
Alors peut-être que c'est aussi simple que de demander : comment puis-je boucler une formule pour qu'elle soit appliquée N fois ?
Re : Nombre de lignes jusqu'à l'événementÀ ce stade, je devrai me demander : que cherchons-nous ici ? Une formule unique et explicite ?
La formule que j'ai fournie est une formule unique (nécessitera de petits changements pour gérer les cas s'il n'y a pas d'événements après un point spécifique) mais difficilement explicite, mais peut être rapprochée d'une formule en utilisant des variables de support avec de bons noms.
Re : Nombre de lignes jusqu'à l'événementPeut-être pouvons-nous utiliser le fait que la solution, si l'ordre des lignes est inversé, est automatiquement renseignée dans JMP ?

Par exemple, cela inversera l’ordre des événements.
Événement inversé :
:Event[(N Rows() - Row()) + 1]
Désormais, les valeurs se remplissent automatiquement au fur et à mesure que le calcul s'effectue de haut en bas.
n lignes après l'événement inversé :
If( :Event inverted == 1, 0,
Lag( :n rows after inverted event, 1 ) + 1
)
Finalement, nous avons inversé cette colonne.
:n rows after reversed event[(N Rows() - Row()) + 1]
Avez-vous des idées sur la façon de procéder dans une formule facile à interpréter ?
Re : Nombre de lignes jusqu'à l'événementVous pouvez utiliser une formule plus compliquée. Quelque chose comme ceci pourrait fonctionner (peut ne pas gérer correctement tous les cas particuliers) :
If(Row() == 1,
m_events = Loc(:Event << get as matrix, 1);
);
smallerRows = Loc(Row() <= m_events);
If(N Items(smallerRows) == 0,
0,
rowNextEvent = m_events[smallerRows[1]];
If(rowNextEvent,
rowNextEvent - Row();
);
);