Accès au nombre de lignes / colonnes et aux notes du fichier .jmp sans ouvrir le fichierCes informations sont accessibles via JMP Open file au moins sous Windows:

Vous vous demandez s'il est possible d'y accéder via un script sans ouvrir la table de données JMP ( Options de fichier de données ouvertes )?
Les noms de colonnes sont accessibles avec
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp", "Column Names Only");
Tableau de donnéesScriptingRe: Accéder au nombre de lignes / colonnes du fichier .jmp et aux notes sans ouvrir le fichiersalut @jthi ,
Je ne sais pas comment obtenir ces informations à partir de la boîte de dialogue de fenêtre ouverte dans JMP, mais vous pouvez faire quelque chose comme ceci:
Names Default to Here(1);
dt=open("$SAMPLE_DATA/Big Class.jmp", Invisible);
Show(Nrows(dt));
Show(NCols(dt));
Close(dt);Il doit renvoyer les éléments suivants dans la fenêtre Journal ou dans le journal intégré de la fenêtre Script:
N lignes (dt) = 40;
N Cols (dt) = 5;
Le "Invisible" dans la commande open ne fera pas monter la table de données au premier plan et la cachera en quelque sorte en arrière-plan. Vous pouvez même exécuter une commande Afficher les propriétés (dt) et obtenir une liste beaucoup plus complète d'informations sur la table de données.
Je sais que ce n'est pas exactement ce que vous voulez, mais cela peut faire le travail, je pense.
DS
Re: Accéder au nombre de lignes / colonnes du fichier .jmp et aux notes sans ouvrir le fichierJe suggérerais de spécifier "Privé" plutôt que "Invisible". Cela ne fait pas travailler JMP aussi dur, car il n'a pas besoin de créer les objets d'affichage.Re: Accéder au nombre de lignes / colonnes du fichier .jmp et aux notes sans ouvrir le fichierLa façon dont JMP le montre dans le menu Ouvrir un fichier de données est beaucoup plus rapide (peut-être ...). J'ai des tables assez larges, 60 colonnes et très hautes, environ 15 millions de lignes. Leur ouverture est assez lente. Je peux obtenir le nombre de colonnes en l'ouvrant uniquement en tant que noms de colonnes et peut-être en ouvrant le datatable uniquement en tant que colonne unique mais toutes les lignes, mais je pense que ce sera toujours plus lent. Bien sûr, il est possible que JMP fasse quelque chose comme ça dans les coulisses?
Je pourrais peut-être implémenter quelque chose comme ceci:
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);Étant donné que le Discovery Summit est en cours, je vais peut-être participer à l'une des sessions Meet-The-Developer et poser cette question également là-bas.
Re: Accéder au nombre de lignes / colonnes du fichier .jmp et aux notes sans ouvrir le fichierJ'ai assisté à la session Meet the Developers aujourd'hui au Discovery Summit pour poser des questions à ce sujet. Il semble qu'une solution comme celle que j'ai publiée plus tôt (obtenir les noms de colonnes, N éléments () ceux pour le nombre de colonnes, ouvrir la datatable avec une colonne comme privée et N lignes () pour le nombre de lignes) est actuellement le moyen le plus rapide de le faire. Ils ont pris une note alors peut-être qu'à l'avenir, ce sera possible sans ouvrir même les tables de données privées ou JMP fournira des fonctionnalités pour le faire.
Vous trouverez ci-dessous le script au format de fonction. Ils ont suggéré d'ajouter Close pour le dt_temp. Ce script peut avoir besoin de Wait (0); ici et là, mais comme cela fonctionnait sans eux, je n'en ai pas ajouté.
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"));Re: Accéder au nombre de lignes / colonnes du fichier .jmp et aux notes sans ouvrir le fichierMerci d'avoir souligné l'un des avantages d'assister Sommet Découverte et Rencontrez les Développeurs / Demandez aux Experts.
À la suite de votre conversation et de cet article dans JMP 17, nous ajouterons une option JSL pour obtenir le nombre de lignes et de colonnes dans une table de données, ainsi que les noms des colonnes et le contenu de la propriété Notes si elle existe . Bravo!