Salut tout le monde,
Je suis très novice dans l'utilisation de logiciels statistiques plus puissants et j'apprends lentement les ficelles du métier. Je suis bon pour mettre en œuvre les commentaires, mais pas si bon pour mes propres recherches.
Je travaille avec des piles. Nous recueillons une tonne de données et nous utilisons différents tests en fonction de ce que nous voulons savoir. Les données générées sont de nature cyclique, car nous chargeons la cellule, la reposons, la déchargeons et la reposons à nouveau. C'est ce qu'on appelle des étapes.
Dans un test (je les appelle runs), nous pouvons avoir plusieurs cycles à un régime, puis plusieurs cycles à un autre. Par conséquent, il est important pour moi de pouvoir suivre les réponses (courants, tensions, capacités, énergies, etc.) en tant que facteurs de cycles, de pas ainsi que de courses.
Sur ma requête: j'ai besoin d'une formule de colonne qui commencera à 11, puis augmentera d'une valeur de 1 toutes les 4 lignes. Cette colonne suivra le nombre total de cycles sur plusieurs exécutions. La raison pour laquelle il doit être incrémenté de 4 est que c'est le nombre d'étapes qu'il y a dans chaque cycle.
Pour plus de clarté, permettez-moi de donner un exemple.
La colonne 1 est intitulée Exécuter. Il suit le nombre d'un test particulier en série.
La colonne 2 est intitulée Nombre total de cycles. C'est la colonne que j'ai besoin de coder correctement.
La colonne 3 est intitulée Nombre de cycles réel. Il décrit le nombre de cycles d'un test particulier. Ces valeurs sont cycliques, et repassent à 1 au début de chaque nouveau Run. Leur borne supérieure n'est pas cohérente. Les valeurs se répètent également en fonction du nombre d'étapes dans chaque cycle. Un exemple des valeurs serait 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,1,1,1,1,2,2 , 2, 2, etc...
La colonne 5 est intitulée RawStepID. Il se remet à 1 au début de chaque cycle. Un exemple serait 1,2,3,4,1,2,3,4,1,2,3,4, etc.
La colonne 6+ contient toutes les données obtenues.
Jusqu'à présent, mon approche de la colonne 2 a été d'essayer de préparer une instruction IF avec une variable locale. Je veux qu'il incrémente cette variable d'une valeur de 1 à chaque fois que RawStepID == 1. J'en ai besoin pour commencer à 11, puis devenir 12 lorsque RawStepID = 1, devenir 13 la prochaine fois RawStepID = 1, etc. Ensuite, j'ai besoin de la formule pour afficher la valeur actuelle de la variable.
C'est-à-dire, si j'utilise les données que j'ai tapées pour la colonne 3, j'ai besoin que les valeurs de cette colonne deviennent
11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17, 17, 17, 17, 18, 18, 18, 18, etc.
J'espère que c'est clair. En attendant, je vais essayer de trouver comment inclure un tableau dans un message de forum comme j'ai vu d'autres membres le faire, ou à défaut, créer un tableau factice à attacher ici.
Merci,
ScaredAntilope.
Bonjour @ih ,
Merci! La deuxième approche que vous avez fournie est exactement ce que j'essayais de mettre en œuvre. Je ne partagerai pas à quoi ressemblait mon code mais je peux vous assurer qu'il s'agissait de spaghettis du genre le plus bouilli.
Si j'ai bien compris, c'est aussi une solution très flexible. Je peux changer le numéro de départ de la ligne en changeant le 11 à la ligne 2, je peux changer l'incrémentation en changeant le décalage du nombre total de cycles à la fin de la ligne 3, et je peux voir comment adapter ce code pour incrémenter par exemple, le Exécutez la valeur à chaque fois que le nombre de cycles réel revient à 1.
If(
Row() == 1, 23,
:ActualCycleNumber == 1 & Lag ( :ActualCycleNumber ) != 1, Lag ( :Run ) + 1,
Lag ( :Run )
)
Je ne comprends pas l'effet de la deuxième condition pour l'incrémentation du nombre total de cycles. Ou comment utiliser Lag en général. Pourriez-vous m'expliquer ou m'indiquer une bonne ressource pour apprendre de tels principes ?
Salut @statman
C'est le cas pour ce scénario particulier, oui. Cependant, le nombre total de cycles est quelque chose que j'utilise beaucoup dans les requêtes afin de suivre les données sur plusieurs exécutions. Ainsi, par exemple, je pourrais avoir cette table spécifique à Run 1 et une autre table pour les données spécifiques à Run 2. Dans les deux cas, le nombre de cycles réels commencera à 1 et augmentera jusqu'à ce que (défini dans le test). Cependant, le nombre total de cycles commencera à la somme cumulée des nombres de cycles réels subis par cette batterie à travers toutes les exécutions.
Une autre façon de voir les choses est que le nombre de cycles réel correspond aux données brutes que j'obtiens de mon logiciel expérimental, tandis que le nombre de cycles total correspond aux données traitées. Et un dernier exemple :
L'exécution 1 contient 30 cycles. Dans ce cas, les numéros de cycle total et de cycle réel commenceront à 1 et se termineront à 30. L'exécution 2 contient 15 cycles. Le nombre total de cycles commencera à 31 et se terminera à 45. Le numéro de cycle réel commencera à 1 et se terminera à 15. L'exécution 3 contient 102 cycles. Le total commence à 46, se termine à 147, le nombre réel commence à 1 et se termine à 102, etc. etc. Souvent, ce type d'incrémentation se produit dans la même table de données. Garder une trace du nombre total de cycles sur toutes les exécutions est très utile pour l'analyse, car c'est l'un des facteurs clés de la santé de la batterie.
J'espère que cela clarifie mon besoin pour les données telles quelles !
À quelles questions essayez-vous de répondre ? Un coup d'œil rapide, la colonne 2 (11,11,11,11,12...) sera confondue avec la colonne 1 (1,1,1,1,2...) donc cela ne serait pas utile. Chaque colonne doit être un X ou un Y unique.
Salut @ScaredAntelope ,
Deux façons d'aborder la colonne 2 "Nombre total de cycles" pourraient consister à la définir explicitement par ligne :
11 + Floor( (Row() - 1) / 4 )

ou calculez-le comme je pense que vous le faites maintenant:
If(
Row() == 1, 11,
:RawStepID == 1 & Lag( :RawStepID ) != 1, Lag( :Total Cycle Number ) + 1,
Lag( :Total Cycle Number )
)

Notez les deux conditions requises pour incrémenter le nombre total de cycles dans la condition intermédiaire. Vous pouvez également étendre cela pour vérifier d'autres colonnes, par exemple peut-être que le nombre de cycles réels devrait également être 1.