- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
semaine glissante
Bonjour à tous,
J’ai une base de données qui contient des données de début 2019 à Avril 2023.
J’ai créé un script qui, quand je le relance ajoute chaque semaine les nouvelles données de 2023.
Pour éviter que ce fichier ne devienne trop lourd, j’aimerais quand je relance le script en début de semaine pouvoir supprimer une semaine glissante.
Par exemple aujourd’hui nous sommes en semaine 21 (S21) de 2023. Quand je lance le script aujourd’hui, que je puisse supprimer la S1 de 2019 pour après rajouter la S21 de 2023.
La semaine prochaine nous serons en S22 2023, le script va rajouter cette nouvelle semaine, en même temps j’aimerai pouvoir supprimer la S2 de 2019, ainsi de suite...
Cependant, si je lance le script plusieurs fois dans la même semaine il ne faudrait pas qu’il supprime plusieurs semaines consécutives.
Exemple : Si je lance le script 3 fois en S21 2023, juste qu’il supprime S1 2019 et pas S1/S2/S3 2019 (car j’ai lancé le script 3 fois)
Je dispose dans ma base de données d’une colonne « Date début » qui sera utile au développement du script. Voici un aperçu de la colonne ci-dessous :
Merci pour votre aide
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: semaine glissante
Consider using the Date Increment function. In this example, Date Increment counts 230 weeks into the past and returns the date of the first day of that week (Sunday). Then we just select all rows with Start Dates before that date and delete them. Within any single week you run the script, the date returned by Date Increment will be the same, so you can update your data table multiple times per week without triggering unwanted data deletion.
Names Default to Here( 1 );
deleteDate = Date Increment( Today(), "Week", -230, "start" );
Data Table( "Rolling Week.jmp" ) << Select Where( :Start Date < deleteDate );
Data Table( "Rolling Week.jmp" ) << Delete Rows;
JMP Academic Ambassador
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: semaine glissante
I do not know the purpose of the updated data table, so this suggestion might not be helpful. Instead of deleting rows, you could compute a rolling row state for excluded rows in a formula column or with a script. You said you want to avoid the data table becoming too heavy, so this approach might not suit your purpose.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: semaine glissante
Pour éviter d'alourdir la table de données, mon but est d'ajouter des nouvelles données mais en contre partie supprimer les "vieilles" données. Cela permettrait à la table de données d'avoir un équilibre par rapport à la taille du fichier.
J'aimerais écrire un script permettant de faire ce que j'ai précisé dans mon premier message.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: semaine glissante
Are you extracting data from a database into a JMPM data table? If so, you can use a WHERE clause to specify the period.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: semaine glissante
Consider using the Date Increment function. In this example, Date Increment counts 230 weeks into the past and returns the date of the first day of that week (Sunday). Then we just select all rows with Start Dates before that date and delete them. Within any single week you run the script, the date returned by Date Increment will be the same, so you can update your data table multiple times per week without triggering unwanted data deletion.
Names Default to Here( 1 );
deleteDate = Date Increment( Today(), "Week", -230, "start" );
Data Table( "Rolling Week.jmp" ) << Select Where( :Start Date < deleteDate );
Data Table( "Rolling Week.jmp" ) << Delete Rows;
JMP Academic Ambassador