JSL: estratto giorno della settimana dal campo datetime (scripting)Ciao
Ho un campo START_TIME (formato datetime), ad es
15.06.2019 6:05
16.06.2019 8:12
17.06.2019 7:01 ecc.
Vorrei mantenere tutti i giorni che sono il sabato e la domenica.
Immagino, estraendo, riceverei un valore come
START_TIME SAT_SUN
15.06.2019 6:05 7
16.06.2019 8:12 1
17.06.2019 7:01 2
Quindi uso solo mantenere 1s e 7s, giusto.
Come potrei farlo con lo script JSL?
Ho provato approcci come
dt << Nuova colonna ("SAT_SUN", numerico, formato (giorno della settimana (: START_TIME), "datetime"));
quello non sembra funzionare.
Qualche idea?
Saluti!
Novizio
Ri: JSL: Estrai giorno della settimana dal campo datetime (scripting)Semplice idea (visto che devo lasciare un minuto): se vuoi mantenere tutti i valori puoi semplicemente usare il comando filtro ed escludere tutti gli altri che non corrispondono a SAT / SUN.
Se vuoi davvero rimuovere le righe non uguali a SAT / SUN, usa SELECT WHERE e poi elimina le righe. Qualcuno può scrivere uno script demo
Ri: JSL: Estrai giorno della settimana dal campo datetime (scripting)Non è necessario creare una nuova colonna per fare ciò che vuoi. Ecco un semplice script che fa ciò che hai chiesto:
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 ) );
Ri: JSL: Estrai giorno della settimana dal campo datetime (scripting)Se necessario, usa "Aiuto> Indice di scripting" per trovare maggiori dettagli su come funzionano i comandi;
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");