Riferimento a una colonna in JSLSono continuamente stupito da quante informazioni di base su JSL mancano dai tutorial e dalle ricerche su Internet. Non sono sicuro di come ci si possa aspettare che si imparino le basi di questa lingua senza esaminare enormi quantità di informazioni aggiuntive non necessarie, per poi non riuscire alla fine a trovare comunque ciò che è necessario. Immagino sia per questo che i forum di discussione sono disponibili come risorsa.
Sto cercando di fare semplicemente riferimento a una colonna data una tabella dati in JSL.
dt = Open("filepath.jsl");
col = dt:"Column Title/Name";quando scrivo() la colonna non viene visualizzata, il che implica che il riferimento non fa riferimento. La colonna è chiaramente popolata con dati, non è vuota, ho controllato. Errore stupido da fare ma ho risolto il problema. Detto questo non so cosa c'è che non va. Pensavo che questa fosse una cosa piuttosto semplice in JSL, ma scopro continuamente che queste "cose molto basilari in JSL" falliscono e costano minuti preziosi o ore di risoluzione dei problemi quando potrei lavorare sulla logica del mio codice. Sono propenso a presentare un reclamo al mio manager riguardo al nostro utilizzo di questo linguaggio e suggerire potenzialmente di passare a qualcosa di più logico e ben progettato per la programmazione (ovviamente JSL è per uso statistico, non proprio per la logica di programmazione), come Python.
. Grazie per l'eventuale assistenza.
Automazione e scriptingAccesso ai datiCombinazione e pulizia dei datiProgettazione di esperimentiPersonalizzazione di massaRi: Riferimento a una colonna in JSL[NB: avevo scritto la maggior parte di questo prima @jthi rispose e disse più o meno la stessa cosa.]
Innanzitutto, se non hai letto (almeno i primi capitoli) del Guida allo scripting JMP ( PDF , se preferisci) dovresti davvero.
JMP è un linguaggio di scripting, non un linguaggio di programmazione. È strettamente legato all'interfaccia utente di JMP e ha lo scopo di consentire l'automazione delle attività JMP. Provare a pensarlo nello stesso modo in cui pensi a Python o ad altri linguaggi che non controllano un'interfaccia utente porterà alla frustrazione.
Sto cercando di fare semplicemente riferimento a una colonna data una tabella dati in JSL.
La tua domanda ne è un esempio. Il concetto di "riferimento a una colonna" è complicato perché una "colonna" potrebbe significare cose diverse in contesti diversi (ad esempio, una chiamata alla piattaforma, la manipolazione delle proprietà di una colonna, una formula di colonna).
Allora, cosa hai inserito "col" nel tuo esempio? I dati contenuti nella colonna? Il valore di una particolare riga di quella colonna?
Oppure, chiesto diversamente? Dove volevi usare "col" dopo averlo impostato su ciò che volevi che contenesse? In una chiamata alla piattaforma (ad esempio, Distribution(Y(col))? O da qualche altra parte?
Ri: Riferimento a una colonna in JSLSe ricordo bene usando dt:"colname" (come useresti As Column()) ti darà accesso diretto al valore corrente dell'attuale Row() della colonna denominata "colname" in datatable con riferimento dt. Per ottenere un riferimento alla colonna puoi utilizzare Column(dt, "colname") as @Thierry_S disse.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("Column Title/Name",
Character,
"Nominal",
Set Values({"a1", "b2", "c3", "d4", ""})
)
);
For each row(dt,
col = dt:"Column Title/Name";
Show(col);
);
Row() = 1;
col = AsColumn(dt, "Column Title/Name");
Show(col);
col = Column(dt, "Column Title/Name");
Show(col);Sicuramente non sto dicendo che la documentazione JSL sia la migliore, ma contiene parecchio materiale (e un'ottima community e supporto tramite e-mail). Per cominciare queste sono buone fonti:
JMP15 - Guida allo scripting
Guida di JMP
Indice di scripting direttamente da JMP
Se c'è qualcosa che manca o non è chiaro nella Guida di JMP o nell'indice di scripting, sono abbastanza sicuro che JMP sarebbe felice di migliorarli.
@Jeff_Perkinson
Ri: Riferimento a una colonna in JSLLa sintassi corretta è: col = Colonna (dt, "Nome")