Attribuez une variable à la table en fonction du contenu du nom de la table.J'ai plusieurs tables ouvertes et je dois attribuer une variable en fonction d'un contenu (DC1, DC2, DC3) du nom de la table. Si le nom de la table contient DC1, attribuez dt1, s'il contient DC2, attribuez dt2....
Tableau 1 : ABC_25C_DC1 _2024
Tableau 2 : ABC_25C_DC2 _2024
Tableau 3 : ABC_25C_DC3 _2024
Voici la ligne de commande avec laquelle j'essayais de travailler.
tablelist = Obtenir la liste des tables de données() << obtenir le nom ;
Si (Contient (Concat Items (liste de tables), "DC1"),
dt2= XXXXXXXXX
);
Analyse et modélisation des données de baseRe : Attribuer une variable à la table en fonction du contenu du nom de la table.Comment ouvrez-vous ces tables ? Pourriez-vous créer des références au cours de ce processus ? Je voudrais également les stocker dans une liste au lieu d'essayer d'utiliser des dt1, dt2, dt3... séparés pour eux.
Re : Attribuer une variable à la table en fonction du contenu du nom de la table.Ils sont créés par un autre script JMP automatisé auquel je n'ai pas accès.
Re : Attribuer une variable à la table en fonction du contenu du nom de la table.Si vous pouvez être sûr à 100 % des noms, je les stockerais dans une liste
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
New Table("ABC_25C_DC1_2024");
New Table("ABC_25C_DC2_2024");
New Table("ABC_25C_DC3_2024");
tablelist = Get Data Table List() << get name;
dc_tables = {};
For Each({tablename}, tablelist,
If(Starts With(tablename, "ABC_25C_DC"), // some pattern to catch correct tables
Insert Into(dc_tables, Datatable(tablename));
);
);
Vous pouvez ensuite y accéder avec dc_tables[1] et ainsi de suite.
Re : Attribuer une variable à la table en fonction du contenu du nom de la table.
J'espère que cela clarifiera davantage ce que j'essaie de réaliser.

Re : Attribuer une variable à la table en fonction du contenu du nom de la table.Je ne pense pas que cela m'apporte des éclaircissements supplémentaires, attendez-vous à ce que vous puissiez capturer le "type" du tableau après le dernier _. Si vous pouvez capturer le "type" du tableau à partir de la fin (après le dernier _), vous pouvez utiliser un tableau associatif (ou encore une liste). Vous pouvez utiliser Word pour capturer la dernière partie du nom
Names Default To Here(1);
str = "ABC_25C_DC1_2024";
last_part = Word(-1, str, "_");
L'idée finale serait toujours la même, trouver un moyen d'obtenir des références à vos tables, les stocker dans une structure de données (liste ou tableau associatif), récupérer les tables de cette structure de données si nécessaire en utilisant un index (liste) ou une clé (tableau associatif) ).