Come nominare una tabella tramite JSL e farvi riferimento più avanti nello script?Ciao, sto cercando di selezionare un piccolo sottoinsieme di dati da un grande datatable e creare una tabella temporanea da esso. L'obiettivo generale è riassumere i dati del sottoinsieme. Lo script seguente sta creando la tabella di dati del sottoinsieme "Nome" ma non mi restituisce il riferimento per elaborare la nuova tabella. Nello script sottostante sono riepilogati i dati della tabella dati Test ma non la tabella dati Nome.
Per favore aiutami con esso.
dt=Open("Test.jmp");
Z= NRow();
k=dt<< Get Rows Where(:Para == "THK" );
pt = dt << Subset(
Rows(k),
Output Table Name("Name"),
);
// I want to summarize the data from this subset data table
Close (dt, No Save);
pt = Current Data Table ();
Summarize(
a=by(:Para, Route),
//b= by(:Route),
c= count,
meanHT = mean(SITE_VALUE),
stdevHT = stddev(SITE_VALUE)
);
show (a,c);
Oggetto: riferimento al nome della tabella di outputLa prima è una domanda e la seconda è un'affermazione.
Spesso è efficace quando si lavora con una tabella di dati per ottenere un riferimento ad essa e quindi riutilizzarla per inviare messaggi. Il primo utilizzo è chiamare la funzione per ottenere quel riferimento e memorizzarlo in una variabile per riferimenti futuri.
La tabella di dati corrente è una comodità in quanto la maggior parte delle azioni in JMP utilizza per impostazione predefinita quella tabella se non ne viene specificata una esplicitamente. Il secondo utilizzo assegna un riferimento alla tabella per renderlo la tabella dati corrente. Immagina di avere diversi tavoli aperti e di voler cambiare un tavolo per essere aggiornato.
Questa disposizione in JSL è una questione di stile. Dipende anche dal caso d'uso se uno stile è più vantaggioso di uno stile.
Oggetto: riferimento al nome della tabella di output
pt = current data table();
otterrà la tabella dei dati corrente
current data table(pk);
imposterà la tabella dati corrente
Oggetto: riferimento al nome della tabella di outputQual è la differenza tra
pt = current data table();
E
current data table(pk);
?
Oggetto: riferimento al nome della tabella di outputPotrei mancare qualcosa, ma dalla domanda originale, il problema dichiarato sembrava essere la necessità di poter fare riferimento alla tabella dei dati con subset per la funzione di riepilogo.In JMP 12, è disponibile un argomento aggiuntivo per la funzione di riepilogo.È possibile aggiungere la tabella dati come primo argomento.Quindi tutto ciò che dovresti fare è cambiare la dichiarazione di riepilogo in:
Summarize(pt,
a=by(:Para, Route),
//b= by(:Route),
c= count,
meanHT = mean(SITE_VALUE),
stdevHT = stddev(SITE_VALUE)
);
Un'altra osservazione è che stavi usando una dichiarazione di:
pt = current data table();
Quello che credo tu volessi davvero fare è impostare la tabella dei dati corrente su pk, usando:
current data table(pk);
O sono completamente indirizzato male?
Oggetto: riferimento al nome della tabella di outputSe usi l'opzione 'Salva' di 'Chiudi()', devi dire a JMP dove mettere il file:
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Wait(3);
Close(dt, Save("$DESKTOP/"||(dt << getName)));Oggetto: riferimento al nome della tabella di output<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Grazie. Sembra risolvere il mio problema originale. .
Infatti anche il mio script originale sembra funzionare ma non mi consente una facile gestione dell'oggetto datatable. Come nel caso presente (utilizzando il tuo script), non sono in grado di salvare la tabella dei sottoinsiemi. Eventuali suggerimenti?? grazie in anticipo
Chiudi (dtSub, Salva);
genera un errore.....
Problema di I/O. Impossibile aprire in modalità ReadWrite.
Il sistema non trova il file specificato.
Salvare le modifiche alla tabella dei dati di JMP Femmina?
Oggetto: riferimento al nome della tabella di outputForse l'equivalente JSL di "Tabelle> Riepilogo" è migliore in questo caso?
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
rows2get = dt << getRowsWhere(:sex == "F");
dtSub = dt << Subset(Rows(rows2get), Output Table("Females"));
dtSummary = dtSub << Summary(Mean(:Weight), Group(:age));