Accesso al conteggio delle righe / colonne del file .jmp e alle note senza aprire il fileÈ possibile accedere a queste informazioni tramite JMP Open file almeno su Windows:

Chiedendosi se è possibile accedervi tramite script senza aprire JMP datatable ( Apri Opzioni file dati )?
È possibile accedere ai nomi delle colonne con
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp", "Column Names Only");
Tabella datiScriptingRi: Accesso al conteggio di righe / colonne di file .jmp e note senza aprire il fileCiao @jthi ,
Non so come ottenere queste informazioni dalla finestra di dialogo aperta in JMP, ma potresti fare qualcosa del genere:
Names Default to Here(1);
dt=open("$SAMPLE_DATA/Big Class.jmp", Invisible);
Show(Nrows(dt));
Show(NCols(dt));
Close(dt);Dovrebbe restituire quanto segue nella finestra Log o nel log incorporato della finestra Scripting:
N righe (dt) = 40;
N Cols (dt) = 5;
Il comando "Invisibile" nel comando di apertura non farà apparire la tabella dei dati in primo piano e la nasconde in un certo senso sullo sfondo. Potresti anche eseguire un comando Mostra proprietà (dt) e ottenere un elenco molto più ampio di informazioni sulla tabella dei dati.
So che non è esattamente quello che vuoi, ma può fare il lavoro, penso.
DS
Ri: Accesso al conteggio di righe / colonne di file .jmp e note senza aprire il fileSuggerirei di specificare "Privato" anziché "Invisibile". Non rende JMP così difficile, poiché non deve creare gli oggetti di visualizzazione.Ri: Accesso al conteggio di righe / colonne di file .jmp e note senza aprire il fileIl modo in cui JMP lo mostra nel menu Apri file dati è molto più veloce (forse ...). Ho alcuni tavoli abbastanza larghi, 60 colonne e molto alti, ~ 15 milioni di righe. L'apertura di questi è abbastanza lenta. Posso ottenere il conteggio delle colonne aprendolo solo come nomi di colonna e forse il conteggio delle righe aprendo datatable solo come singola colonna ma tutte le righe, ma penso che sarà ancora più lento. Ovviamente potrebbe essere possibile che JMP stia facendo qualcosa di simile dietro le quinte?
Potrei forse implementare qualcosa del genere:
Names Default To Here(1);
dtPath = "$SAMPLE_DATA/Probe.jmp";
//dtPath = "$SAMPLE_DATA/Alcohol.jmp"; //table with notes
colNames = Open(dtPath, "Column Names Only");
colCount = N Items(colNames);
dt_temp = Open(dtPath, Select Columns([1]), Private);
notesTableVar = dt_temp << Get Table Variable("Notes");
rowCount = N Rows(dt_temp);
dt_temp = Empty();
Show(colCount, rowCount, notesTableVar);
//Show(colNames);Dato che il Discovery Summit è attualmente in corso, forse salgo a una delle sessioni Meet-The-Developer e chiedo anche questo.
Ri: Accesso al conteggio delle righe / colonne del file .jmp e alle note senza aprire il fileHo partecipato alla sessione Meet the Developers oggi al Discovery Summit per chiedere informazioni in merito. Sembra che una soluzione come quella che ho pubblicato in precedenza (ottieni i nomi delle colonne, N Items () quelli per il conteggio delle colonne, open datatable con una colonna come privata e N Rows () per il conteggio delle righe) è attualmente il modo più veloce per farlo. Hanno preso nota quindi forse in futuro sarà possibile senza aprire anche datatables privati o JMP fornirà funzionalità per farlo.
Di seguito è riportato lo script in formato funzione. Hanno suggerito di aggiungere Close per dt_temp. Questo script potrebbe richiedere Wait (0); qua e là, ma siccome funzionava senza di loro non ne ho aggiunti.
Names Default To Here(1);
//https://community.jmp.com/t5/Discussions/Accessing-jmp-file-row-col-count-and-notes-without-opening-file/td-p/366316
//Function to get column count, rowcount, table notes and column names to associative array
getTableInfo = function({path_to_table}, {Default Local},
//Check that file exists
If(!File Exists(path_to_table),
return(Associative Array({"error"}, {"File not found"}));
);
//Initialize associative array
retVal = Associative Array(
{"name", "rowCount", "columnCount", "notes", "columnNames"},
{"", 0, 0, "", {}}
);
//Open datatable as columns only list
colNames = Open(path_to_table, "Column Names Only");
//Check that table has atleast one column
If(N Items(colNames) > 0,
retVal["columnNames"] = colNames;
retVal["columnCount"] = N Items(colNames);
dt_temp = Open(path_to_table, Select Columns([1]), Private);
retVal["name"] = dt_temp << get name();
retVal["rowCount"] = N Rows(dt_temp);
);
//Get notes from "Notes" table variable
retVal["notes"] = dt_temp << Get Table Variable("Notes");
Close(dt_temp, no save);
return(retVal);
);
//Examples with tables from $SAMPLE_DATA
aa_probe = getTableInfo("$SAMPLE_DATA/Probe.jmp");
Show(aa_probe["name"],aa_probe["rowCount"], aa_probe["columnCount"], aa_probe["notes"]);
Show(getTableInfo("$SAMPLE_DATA/Alcohol.jmp"));
Show(getTableInfo("$SAMPLE_DATA/Alcohol.jmpmissing"));