Imaginons que nous ouvrions city.jmp.
Comment puis-je obtenir le nom (jeu de mots) des « villes » comme entrées pour une nouvelle variable, par exemple « MON_NOM ».
Ainsi, la future variable "MY_NAME" contient plusieurs instances de "villes". Par nature, il doit s'agir d'un caractère et "MY_NAME" n'est pas une variable, mais une constante.
Quoi qu'il en soit, une idée de comment faire ça ?
Je sais qu'il existe une fonction de fichier. OBTENIR LE NOM. Mais je n'ai pas encore réussi à stocker les entrées avec succès dans MY_NAME.
Merci d'avance,
encore débutant
Et pour illustrer que dans JMP, il existe généralement de nombreuses façons d'aborder une solution, voici une variante de @Jeff_Perkinson exemple
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
dtname = dt << get name();
dt << New Column( "Data Table Name", character, set each value( dtname ) );
Je pense que nous avons une confusion de termes. Dans une table de données JMP, nous les appelons Colonnes , pas des champs ou des variables (ou des constantes). Ainsi, lorsque vous avez demandé comment créer un variable avec « villes », on supposait que vous parliez d'une variable JSL.
Maintenant, il semble que vous vouliez vraiment une colonne dans votre table de données avec le nom de la table de données dans chaque ligne.
Vous l'avez déjà vu, grâce à @txnelson , que le < Le message vous donnera le nom de la table de données.
Vous devez maintenant créer une nouvelle colonne dans votre table de données à l'aide du < message. Dans New Column(), vous pouvez utiliser Set Values() pour définir les valeurs de chaque ligne.
Donc, maintenant nous avons juste besoin d’une liste de valeurs. Nous pouvons l'obtenir en utilisant le Répéter() fonction.
Le tout ressemble à ceci :
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
dtname = dt << get name();
dtname_list = Repeat( {dtname}, N Row( dt ) );
dt << New Column( "Data Table Name", character, set values( dtname_list ) );
Il existe d'autres façons d'insérer des valeurs dans une colonne. Nous pourrions utiliser une formule où la "formule" n'est qu'une chaîne constante, mais la syntaxe de celle-ci dans JSL devient un peu confuse car nous devons gérer le moment où les expressions JSL sont évaluées (pensez aux citations de macro dans SAS ; ce n'est pas là que vous le feriez. je veux que quelqu'un de nouveau commence.)
Cela dit, il n'y a pas beaucoup de cas où vous avez besoin du nom de la table de données dans toutes les lignes de la table de données, car JMP créera des colonnes comme celle-ci dans les cas où elles sont pratiques. Par exemple, quand concaténation de tables de données , il existe une option pour créer une colonne avec le nom de la table d'où provient chaque ligne.

D'autres commandes de manipulation de tables ont des options similaires. Alors, peut-être pourriez-vous nous dire ce que vous essayez de faire et pourquoi vous pensez avoir besoin de cette chronique et nous pourrons peut-être vous aider encore plus.
Ce code place le nom de la table de données dans une variable JSL
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/cities.jmp" );
MY_NAME = dt << get name;
Show( MY_NAME );