Funzionalità JSL o bug?Ho una funzione che si basa sul sapere se una sottostringa di una stringa più grande rappresenta un numero o meno, e uso semplicemente il risultato del comando Num() -- se restituisce un valore mancante presumo che la sottostringa non rappresenti un numero .
Tuttavia, un utente ha indicato un bug che aveva come causa principale il fatto che il comando Num() è perfettamente soddisfatto di qualsiasi numero preceduto dalla letterale "R".
Qualcuno ne è a conoscenza come funzionalità o bug?Ho provato a cercare nell'indice di scripting ma non riesco a pensare a una query ben posta per questo.
Grazie!
Print( Num( "R404" ) );
Print( Num( "R123.456" ) );
Print( Num( "r99" ) );
/*
404
123.456
.
*/
SceneggiaturaRe: Funzionalità JSL o bug?Valuta, forse. Molti casi strani a cui prestare attenzione...
num("$5")
5
num("1gen2000")
3029529600
num("5%")
0,05
asdate(num("1/1"))
01 gennaio 2001
Re: Funzionalità JSL o bug?Mi rendo conto che ci sono molti casi a cui prestare attenzione, ma in particolare devo preoccuparmi solo dei caratteri standard e "R" è l'unico esempio qui.In qualsiasi altro linguaggio di programmazione questo sarebbe ben documentato o considerato un bug (qualsiasi comportamento che non è esplicitamente elencato nella documentazione è un bug), ma JMP non è a quel livello di documentazione, quindi probabilmente è solo una funzionalità nascosta.
Re: Funzionalità JSL o bug?La valuta sembra probabile, ma non posso davvero dire se questa è una caratteristica, se lo è sicuramente ha bisogno di una migliore documentazione in diversi luoghi.Se hai già un'idea di quale sia il numero Dovrebbe sembra che potresti fare meglio a scrivere la tua funzione di convalida per quei dati, trovo che impedisca che cose come "1/1" vengano interpretate come 1 gennaio. Ovviamente questo diventa più difficile se hai a che fare con più lingue..
num_validated = function({v}, {r=.},
if( //Make sure anything with odd characters is missing
is missing(regex(v,"^[0-9\.\,]+$")),
r = .,
//try to interpret everything else using 'num':
r = num( v );
);
r;
);
show(
num_validated("1"),
num_validated("1.0"),
num_validated("R1"),
num_validated("1,000")
);Re: Funzionalità JSL o bug?Ho inviato una nota ai team di sviluppo e documentazione di JMP. Grazie!
Re: Funzionalità JSL o bug?Saluti a tutti. Sembra che sia stato fatto del lavoro per questo problema nel periodo di tempo di JMP 17. In particolare, un argomento aggiuntivo è stato aggiunto a Num() e Informat() per aiutarti a controllare ciò che è considerato un numero valido. Tutti gli utenti di JMP 17 EA7 (o successivi) possono provarlo ora; altri dovranno attendere fino a quando JMP 17 sarà disponibile nell'autunno del 2022. Grazie per aver segnalato questo! Monitoriamo questi forum e cerchiamo di risolvere cose come questa quando possibile.
Re: Funzionalità JSL o bug?@Audrey_Shull
Stavo riscontrando un problema con una colonna importata come carattere.
Non riuscivo a vedere nulla che non fosse numerico a occhio.
Ma quando lo si trasforma in un valore numerico, la maggior parte dei valori è scomparsa. (con JMP 16.2 Pro)
Ma usando JMP 17EA potrei trasformare immediatamente da carattere a numerico senza che i valori scompaiano.
Quindi c'è stato qualche progresso lì.
Spero che sia d'aiuto!
Ben