JSL: Extraer el día de la semana del campo datetime (secuencias de comandos)Hola
Tengo un campo START_TIME (formato de fecha y hora), por ejemplo
15.06.2019 6:05
16.06.2019 8:12
17.06.2019 7:01 etc.
Quisiera guardar todos los días que sean sábados y domingos.
Me imagino, al extraerlo recibiría un valor como
START_TIME SAT_SUN
15.06.2019 6:05 7
16.06.2019 8:12 1
17.06.2019 7:01 2
Entonces solo uso mantener 1s y 7s, a la derecha.
¿Cómo haría eso con el script JSL?
Intenté enfoques como
dt << Nueva columna ("SAT_SUN", numérico, formato (día de la semana (: START_TIME), "fecha y hora"));
Eso no parece funcionar.
¿Alguna idea?
¡Aclamaciones!
Novato
Re: JSL: Extraer el día de la semana del campo datetime (scripting)Solo una idea rápida (como tengo que dejar en un minuto): si desea conservar todos los valores, puede usar el comando de filtro y excluir todos los demás que no coincidan con SAT / SUN.
Si realmente desea eliminar las filas que no son iguales a SAT / SUN, use SELECT WHERE y luego elimine las filas. Cualquiera puede escribir un script de demostración
Re: JSL: Extraer el día de la semana del campo datetime (scripting)No es necesario crear una nueva columna para hacer lo que quiere. Aquí hay un script simple que hace lo que pediste:
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: Extraer el día de la semana del campo datetime (scripting)Si es necesario, use 'Ayuda> Índice de secuencias de comandos' para encontrar más detalles sobre cómo funcionan los comandos;
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");