Short Date () creando una colonna di caratteri bloccatiQuando creo una colonna "data" nello script seguente, viene creata una colonna bloccata (quindi non posso cambiare il formato). Short Date () nella formula sembra essere il problema.
La colonna del tempo rimane numerica dopo l'applicazione della formula.
Come posso ottenere la "Data" per rimanere numerici?
La data è successiva in un calendario () per impostare il calendario affinché mostri solo i giorni in cui sono presenti dati.
_____________________________________________________
//Open
dt_run = Open( "data.jmp");
dt_run << New Column( "Date", Numeric, Continuous, Format("m/d/y"), Input Format( "m/d/y h:m:s"));
Column( "Date") << Add Column Properties( Formula( Short Date( :Name( "Date & Time" ) ) ) );
dt_run << New Column( "Time", Numeric, Continuous, Format("h:m"), Input Format( "m/d/y h:m:s"));
Column( "Time") << Add Column Properties( Formula( Time Of Day( :Name( "Date & Time" ) ) ) );Grazie
opaco
Ri: Short Date () creando una colonna di caratteri bloccatiI problemi che si verificano riguardano la comprensione di ciò che restituisce la funzione Short Date (). Non restituisce un valore data JMP, che sarebbe il numero di secondi a partire dalle 12:00, 1 gennaio 1904, ma restituisce invece una stringa letterale della parte data di un valore data JMP. Per illustrare ciò, il seguente JSL visualizza ciò che Short Date () restituisce:
show(short date(today())); <BR />
e ritorna
Short Date(Today()) = "12/03/2019";
E poiché nella tua JSL ha restituito una stringa letterale, ha cambiato la colonna Data in una colonna di caratteri.
In realtà, quello che vuoi è usare la funzione DateMDY () per creare il valore della data.
Di seguito è riportata una versione rielaborata del codice che fa ciò di cui credo tu abbia bisogno:
Names default to here(1);
dt_run = new table("data",add rows(1), new column("Date & Time",formula(today()),format("m/d/y h:m:s")));
dt_run << New Column( "Date", Numeric, Continuous, Format("m/d/y"));
Column( "Date") << set Formula( DateMDY(Month(:Name( "Date & Time" )),Day(:Name( "Date & Time" )),Year(:Name( "Date & Time" )) ) );
dt_run << New Column( "Time", Numeric, Continuous, Format("h:m"));
Column( "Time") << set Formula( Time Of Day( :Name( "Date & Time" ) ) );Ri: Short Date () creando una colonna di caratteri bloccatiJim,
Grazie per una risposta così ben spiegata. I tuoi post sono sempre informativi, educativi e facili da seguire.
opacoRi: Short Date () creando una colonna di caratteri bloccatiConsiderato un po 'di più il pensiero sulla tua JSL ....... potresti utilizzare quanto segue per popolare la colonna Data
Column( "Date") << set Formula( informat(Short Date( :Name( "Date & Time" ) ), "mm/dd/yyyy") );
Utilizza solo la funzione Informat (), che accetta una stringa letterale e restituisce un valore numerico Data JMP
Ri: Short Date () creando una colonna di caratteri bloccatiPuoi anche farlo usando solo il numero cambiando data e ora da secondi a giorni e pavimentazione.
Names Default to Here( 1 );
dt = New Table( "Test",
Add Rows( 1 ),
New Column( "DateTime",
Numeric,
"Continuous",
Format( "m/d/y h:m:s", 23, 0 ),
Formula( Today() ),
)
);
dt << New Column("Date",
Numeric,
"Continuous",
Format( "m/d/y", 23 ),
Formula(
num_s_per_day = 24*60*60; // # seconds/day
Floor(
:DateTime // take the date time which is a number in seconds
/ num_s_per_day // turn it into days by dividing
) // this will round down to the day
* num_s_per_day // turn it back into seconds (a date time)
),
);