Scripting: recupero di determinati nomi di colonna di una tabella di dati<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Ho una tabella dati (importata da Excel) in cui alcuni nomi di colonne hanno un formato data (ad esempio, 14 settembre). Ma ci sono anche altre colonne. In allegato trovate la tabella dati jmp Example1. Ci sono due problemi.
Prima edizione:
Devo impilare le colonne della data per averle, ad esempio, come X in un'analisi del generatore di grafici.Questo non è molto difficile (script in Example1, ma la tabella sarà un documento vivente e nuove colonne verranno aggiunte con l'avanzare dei mesi e quindi non posso utilizzare lo script automatico con colonne hardcoded.
Ho bisogno di estrarre quei nomi di colonna con una tale struttura di data (Mese YY) e impilarli. Ho provato a utilizzare Ottieni nome colonna che estrae l'elenco delle colonne:
colNames = Tabella dati ( "Esempio 1" ) << Ottieni nomi di colonna ;
mostrare (colN ames ) ;
Ma non sono riuscito a estrarre solo quelli che mi interessava impilare. Ho pensato a Regex () ma non sono riuscito a farlo funzionare nel modo in cui mi piaceva.
Seconda edizione:
Quindi viene visualizzato il numero successivo. Il tipo di dati sarà carattere e nominale. Vorrei che fosse numerico e ordinale (o almeno carattere e ordinale ma nella serie corretta). Quando si modifica la proprietà in numeric, ho ricevuto molti valori mancanti, ma non tutti.
Non sono sicuro di cosa sbaglio qui.
Grazie per l'aiuto,
Martin
Oggetto: Scripting: Recupero della colonna alcuni nomi di una tabella di datiCiao don,
Ora capisco meglio la formula regexp che hai usato. Penso di poterlo adeguare a uno scopo generale aggiungendo condizioni, ad esempio nel caso in cui vi sia un misto tra nomi di variabili con "Mese AA", "GG Mese AA", "GG.MM. AA" e così via e adattarlo a il formato finale.
La cosa migliore sarebbe avere un formato di input coerente per i nomi delle variabili che JMP conosce.
Grazie per il tuo aiuto, mi hai messo sulla strada giusta con il tuo esempio. Grazie!
Martin
Oggetto: Scripting: Recupero della colonna alcuni nomi di una tabella di datiCiao don,
Sono arrivato intorno alla data di trasferimento utilizzando un costrutto if poiché la parola Count dipende se c'è un numero iniziale o meno:
Tabella dei dati correnti () << Nuova colonna ( "Nuova data" ,
Numerico ,
Ordinale ,
Formato ( "ddMonYYYY" ) ,
Formula(
Se ( Manca ( Num ( parola ( 1 , : Dato ) ) ) ,
Data DMY (
1 ,
Incontro ( parola ( 1 , : Dato ) ,
"Januar" , 1 ,
"Februar" , 2 ,
"März" , 3 ,
"Aprile" , 4 ,
"Mai" , 5 ,
"Juni" , 6 ,
"Juli" , 7 ,
"Agosto" , 8 ,
"Settembre" , 9 ,
"Oktober" , 10 ,
"Novembre" , 11 ,
"Dezember" , 12 ,
13
) ,
2000 + Num ( parola ( 2 , : Dato ) )
) ,
Data DMY (
Num ( parola ( 1 , : Dato ) ) ,
Incontro ( parola ( 2 , : Dato ) ,
"Januar" , 1 ,
"Februar" , 2 ,
"März" , 3 ,
"Aprile" , 4 ,
"Mai" , 5 ,
"Juni" , 6 ,
"Juli" , 7 ,
"Agosto" , 8 ,
"Settembre" , 9 ,
"Oktober" , 10 ,
"Novembre" , 11 ,
"Dezember" , 12 ,
13
) ,
2000 + Num ( parola ( 3 , : Dato ) )
)
)
)
) ;
Ma ho ancora problemi riguardanti la formula regexp per creare l'elenco regNames.
Martin
Oggetto: Scripting: Recupero della colonna alcuni nomi di una tabella di datiCiao don,
Ho provato a lavorare sul tuo esempio. Tuttavia, ottengo un elenco regNames vuoto e quindi lo script dello stack mi chiede di inserire tutto come in precedenza. Ciò si traduce in una tabella di dati in cui lo script per la nuova colonna non funzionerebbe a causa di un elenco mancante. Inoltre, la trasformazione della data non funziona neanche per me.
Hai provato e ha funzionato per te? Quali impostazioni per la lingua hai usato?
Grazie,
Martin
Oggetto: Scripting: Recupero della colonna alcuni nomi di una tabella di datiMartin,
Allego uno script che dovrebbe risolvere i problemi che stai riscontrando. Regex è particolarmente difficile da usare in JSL e varia in qualche modo dalle espressioni regolari standard (sebbene sia piuttosto simile, per lo più mancano alcune funzionalità). I problemi di data si verificano perché JMP non ha riconosciuto le date come informazioni disponibili, almeno non le ho viste sulla mia versione. La mia soluzione ha analizzato il nome e ha creato una nuova colonna con date numeriche. Esistono soluzioni alternative, anche se pensavo che questa sarebbe stata la più semplice. !