Disons que nous avons une table avec 3 colonnes (exemple ci-dessous). Je crée un sous-ensemble de tables par la colonne "code ville" qui comprendra les 3 colonnes.
| Code de la ville | Numéro d'enregistrement | Date d'inscription |
| 032 | 0320537648 | 20201026 |
| 160 | 1600084082 | 20201020 |
| 281 | 2821162566 | 20201020 |
| 325 | 3250488500 | 20201024 |
| 420 | 4200618843 | 20201101 |
| 511 | 5110680174 | 20201027 |
| 720 | 7200054737 | 20200825 |
Je souhaite enregistrer uniquement les fichiers du sous-ensemble sous forme de fichiers texte comme suit: code de ville value.txt
J'ai trouvé le script jsl suivant sur le forum, ce qui était très utile pour enregistrer les fichiers sous forme de fichiers texte. Le problème est que les fichiers sont enregistrés sous le nom city code = value.txt
La table de données principale est également enregistrée dans un fichier texte, ce que je ne veux pas.
//Save as txt file
openDTs = {};
For( i = 1, i <= N Table(), i++,
Insert Into( openDTs, Data Table( i ) )
);
For( i = 1, i <= N Items( openDTs ), i++,
one_name = openDTS[i] << get name;
file_path = one_name || ".txt";
openDTS[i] << Save(file_path);
);
Je suis nouveau à la fois dans JMP et dans les scripts, donc toutes les idées sont très appréciées.
Vous trouverez ci-dessous un script qui créera l'exemple de table de données que vous avez fourni.Il créera ensuite les sous-ensembles et enregistrera chaque sous-ensemble en tant que fichier .txt.
Tout ce qui doit être fait pour exécuter cet exemple, est de changer la ligne de code
saveFolder = "C:\xxxxxxxxxxxxx\";
à quel chemin d'accès au dossier dans lequel enregistrer les fichiers, puis exécutez le code
Names Default To Here( 1 );
// Create the example data table
New Table( "Example",
Add Rows( 7 ),
New Column( "City code", Numeric, "Continuous", Format( "Best", 12 ), Set Selected, Set Values( [32, 160, 281, 325, 420, 511, 720] ) ),
New Column( "Registration Number",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [320537648, 1600084082, 2821162566, 3250488500, 4200618843, 5110680174, 7200054737] )
),
New Column( "Registration Date",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [20201026, 20201020, 20201020, 20201024, 20201101, 20201027, 20200825] )
)
);
// Here is the real code.....just change the saveFolder = to the actual folder you want to
// save the files to
dt = Current Data Table();
// Create the subsets
dtSub = dt << Subset( By( :City code ),
All rows, Selected columns only( 0 ),
columns( :Registration Number, :Registration Date ) );
saveFolder = "C:\xxxxxxxxxxxxx\";
For( i = 1, i <= N Items( dtSub ), i++,
// Given the structure of the data tables created with a Subset using a By() clause
// City Code = 32
// the Word() function retuns the "32" and it is added as the name of the file to save
dtSub[i] << Save( saveFolder || Word( -1, dtSub[i] << get name, "=" ) || ".txt" )
);
@txnelson Merci beaucoup! A fonctionné comme un charme.