Ajouter des données des colonnes précédentes s'il manqueSalut,
J'essaie de créer une colonne avec la dernière date disponible dans mon jeu de données. Donc, dans ce cas, s'il manque une date à la visite 19, je reçois la date de la visite 18. Que je peux faire. Mais si la date de la visite 18 est manquante, je ne peux plus le faire fonctionner. Alors, comment puis-je faire jmp commencer dans une colonne et revenir en arrière jusqu'à ce qu'il y ait une date?
Frère Julie
Re: Ajouter des données des colonnes précédentes si manquantVous venez de supprimer la clause If (isMissing (complètement) si vous le souhaitez. Cela ne change vraiment rien, tant que la colonne Date de la dernière consultation contient toutes les valeurs manquantes.
Re: Ajouter des données des colonnes précédentes si manquantOk - c'est logique. Mais l’exécution du script n’ajoute aucune valeur à la nouvelle colonne.
Ne devrait pas le " Est manquant "déclaration point à la colonne 19? Ou est-ce que quelque chose me manque?
Re: Ajouter des données des colonnes précédentes si manquantMon erreur sur le i = 5. Je testais avec elle .... je l'ai changée en i = 1.
Si vous voulez une nouvelle colonne, vous pouvez simplement l'ajouter en tant que votre 20ème colonne et utiliser le second script.
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column("Last Date Seen",format("yyyy-mm-dd",12));
For( i = 1, i <= N Rows( dt ), i++,
If( Is Missing( As Column( "Last Date Seen" )[i] ),
Column( "Last Date Seen" )[i] = Max( dt[i, 0] )
)
);Re: Ajouter des données des colonnes précédentes si manquantMais ne vous contentez-vous pas de remplir la dernière colonne avec la date la plus récente au lieu de créer une nouvelle colonne?
Aussi, dans le premier exemple, pourquoi est-ce "i = 5 "?
Merci d'avance
Re: Ajouter des données des colonnes précédentes si manquantVoici 2 façons de le faire
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 1, i <= N Cols( dt ), i++,
missingRows = dt << get rows where( Is Missing( As Column( i ) ) );
If( N Rows( missingRows ) > 0,
For( k = 1, k <= N Rows( missingRows ), k++,
Column( i )[missingRows[k]] = Column( i - 1 )[missingRows[k]]
)
);
);
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 1, i <= N Rows( dt ), i++,
If( Is Missing( As Column( 19 )[i] ),
Column( 19 )[i] = Max( dt[i, 0] )
)
);
Re: Ajouter des données des colonnes précédentes si manquantSi vous commencez à itérer à partir de la première ligne, vous devriez pouvoir renseigner une date manquante avec la date précédente au fur et à mesure que vous parcourez le tableau. Cela me semble assez simple, mais j’ai peut-être manqué un point important.