Fare riferimento a una colonna in JSLSono continuamente sbalordito da quante informazioni di base su JSL mancano dai tutorial e dalle ricerche su Internet. Non sono sicuro di come ci si possa aspettare di imparare le basi di questo linguaggio senza esaminare enormi quantità di informazioni aggiuntive non necessarie, e quindi alla fine non riuscire 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 di dati in JSL.
dt = Open("filepath.jsl");
col = dt:"Column Title/Name";quando scrivo() il col non si presenta, il che implica che il riferimento non fa riferimento. La colonna è chiaramente popolata di dati, non è vuota, ho controllato. Errore stupido da fare ma l'ho coperto. Detto questo, non so cosa c'è che non va. Pensavo che fosse una cosa piuttosto semplice in JSL, ma scopro continuamente che queste "cose di base in JSL" cadono e costano da minuti preziosi a ore di risoluzione dei problemi quando potrei lavorare sulla logica del mio codice. Sono propenso a presentare un reclamo al mio manager sul nostro uso di questo linguaggio e suggerire di passare potenzialmente 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.
SceneggiaturaRe: 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 agli script 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 allo 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 di dati in JSL.
La tua domanda ne è un esempio. Il concetto di "referenziare [ing] una colonna" è complicato perché una "colonna" potrebbe significare cose diverse in contesti diversi (ad esempio, una chiamata di piattaforma, manipolare le proprietà di una colonna, una formula di colonna).
Allora, che cosa hai "col" per contenere 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 contenesse? In una chiamata di piattaforma (ad esempio, Distribution(Y(col))? O da qualche altra parte?
Re: Riferimento a una colonna in JSLSe ricordo bene l'utilizzo di dt: "colname" (lo stesso che useresti As Column()) ti consentirà di accedere direttamente al valore corrente della riga corrente() della colonna denominata "colname" in datatable con riferimento dt. Per ottenere un riferimento alla colonna puoi usare 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 ha un bel po' di materiale (e un'ottima community e supporto con e-mail). Per cominciare, queste sono buone fonti:
JMP15 - Guida agli script
Guida di JMP
Indice degli script direttamente da JMP
Se c'è qualcosa che manca o non è chiaro nella Guida di JMP o nell'Indice di script, sono abbastanza sicuro che JMP sarebbe felice di migliorarli.
@Jeff_Perkinson
Re: Riferimento a una colonna in JSLLa sintassi corretta è: col = Colonna (dt, "Nome")