JSL : extrait le jour de la semaine du champ datetime (script)Salut
J'ai un champ START_TIME (format datetime), par exemple
15.06.2019 6:05
16.06.2019 8:12
17.06.2019 7:01 etc..
Je voudrais garder tous les jours qui sont les samedis et les dimanches.
J'imagine qu'en extrayant je recevrais une valeur comme
START_TIME SAM_SUN
15.06.2019 6:05 7
16.06.2019 8:12 1
17.06.2019 7:01 2
Ensuite, j'utilise simplement Keep 1s et 7s, à droite.
Comment ferais-je cela avec le script JSL?
J'ai essayé des approches comme
dt << Nouvelle colonne ("SAT_SUN",numérique,format(jour de la semaine(:START_TIME),"datetime")) ;
cela ne semble pas fonctionner.
Une idée?
Acclamations!
Débutant
Re : JSL : extrait le jour de la semaine du champ datetime (script)Si nécessaire, utilisez 'Help > Scripting Index' pour trouver plus de détails sur le fonctionnement des commandes ;
NamesDefaultToHere(1);
// Make a table of random dates
n = 50;
startDate = Date DMY( 01, 1, 2016 );
endDate = Date DMY( 12, 10, 2016 );
dates = Sort Ascending( J( n, 1, Random Integer(startDate, endDate) ) );
dt = New Table( "Dates",
New Column( "Random dates", Numeric, "Continuous", Format( "ddMonyyyy h:m", 35 ), Set Values( dates )),
);
// Add a formula for the day of the week
nc = dt << New Column( "Day of the week",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Day Of Week( :Random dates ) ),
Value Labels(
{1 = "Sunday", 2 = "Monday", 3 = "Tuesday", 4 = "Wednesday", 5 = "Thursday",
6 = "Friday", 7 = "Saturday"}
),
Use Value Labels( 1 ),
);
// Make a subset table
r = dt << getRowsWhere(:Day of the week == 7 | :Day of the week == 1);
dt2 = dt << Subset(rows(r), LinkToOriginalDataTable(1));
dt2 << setName("Weekend Dates");
Re : JSL : extrait le jour de la semaine du champ datetime (script)Il n'est pas nécessaire de créer une nouvelle colonne pour faire ce que vous voulez.Voici un script simple qui fait ce que vous avez demandé :
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Aircraft Incidents.jmp" );
dt << select where( Day Of Week( :Event Date ) == 1 | Day Of Week( :Event Date ) == 7 );
dtsub = dt << subset( selected rows( 1 ), selected columns( 0 ) );
Re : JSL : extrait le jour de la semaine du champ datetime (script)Juste une idée rapide (car je dois partir dans une minute): Si vous voulez conserver toutes les valeurs, vous pouvez simplement utiliser la commande filter et exclure toutes les autres ne correspondant pas à SAT/SUN.
Si vous voulez vraiment supprimer les lignes non égales à SAT/SUN, utilisez SELECT WHERE puis supprimez les lignes.Que quelqu'un puisse écrire un script de démonstration