Comment puis-je enregistrer plusieurs tables de données .jmp ouvertes en tant que fichiers .csv ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />En raison du sous-ensemble de tables, j'ai plusieurs tables de données .jmp que je dois enregistrer en tant que fichiers .csv. J'ai essayé un script pour enregistrer toutes les tables ouvertes, mais je ne peux le faire fonctionner que pour enregistrer en tant que fichiers .jmp.
openDTs=List ();For (i=1, i<=N Table (), i++, Insert Into (openDTs, Data Table (i)););
Pour(i=1, i<=N éléments(openDTs),i++,openDTS <
À partir de l'opération de sous-ensemble, un grand nombre de tables seront ouvertes, il serait donc peut-être préférable d'éviter d'avoir autant de tables ouvertes et d'essayer d'incorporer la procédure de sauvegarde après l'opération de sous-ensemble. Je suis très nouveau dans les scripts, toutes les idées sont très appréciées.
Re : Comment puis-je enregistrer plusieurs tables de données .jmp ouvertes en tant que fichiers .csv ?Merci beaucoup. Ce script est ce que je cherchais !
Re : Comment puis-je enregistrer plusieurs tables de données .jmp ouvertes en tant que fichiers .csv ?Soigné. Le script de PMroz fonctionne parfaitement si vous souhaitez capturer toutes les données de chaque table de données sans distinction. Le script que j'ai fourni vous donne un peu plus de contrôle car vous pouvez sélectionner les colonnes à écrire ; il peut également être modifié pour sélectionner des lignes spécifiques ou même des cellules spécifiques si nécessaire. Vous devriez pouvoir insérer le code du script dans le script de PMroz pour sélectionner plusieurs tables de données si vous avez besoin de ce niveau de contrôle.
Re : Comment puis-je enregistrer plusieurs tables de données .jmp ouvertes en tant que fichiers .csv ?dt1 = ouvrir ( "$sample_data\Big Class.jmp" ) ;
dt2 = ouvrir ( "$sample_data\Bands Data.jmp" ) ;
dt3 = ouvrir ( "$sample_data\Auto Raw Data.jmp" ) ;
dt4 = ouvrir ( "$sample_data\Fitness.jmp" ) ;
openDTs = {} ;
Pour ( je = 1 , je <= Tableau N () , je ++,
Insérer dans ( openDTs , Tableau de données ( je ) )
) ;
file_dir = "c:\temp\" ;
Pour ( je = 1 , je <= N articles ( openDTs ) , je ++,
un_nom = openDTS [ je ] << obtenir le nom ;
chemin du fichier = file_dir || un_nom || ".csv" ;
openDTS [ je ] << Sauvegarder ( chemin du fichier ) ;
) ;
Re : Comment puis-je enregistrer plusieurs tables de données .jmp ouvertes en tant que fichiers .csv ?Merci beaucoup pour le scénario. Je l'ai essayé et j'ai travaillé sur l'un des fichiers .jmp. Le problème est maintenant que j'ai plus de 400 tables jmp que j'aurais besoin d'enregistrer en tant que fichiers .csv avec le même nom que les tables jmp correspondantes d'origine. Je n'arrive pas à trouver un moyen de faire ça.
Re : Comment puis-je enregistrer plusieurs tables de données .jmp ouvertes en tant que fichiers .csv ?Si vous fournissez un chemin avec une extension .csv, il sera enregistré en tant que fichier csv.
dt = Nouveau tableau ( "Exemple CSV" , Ajouter des lignes ( 3 ) ,
Nouvelle colonne ( "Colonne 1" , Numérique , Continu , Format ( "Meilleur" , 12 ) , Définir les valeurs ( [ 1 , 2 , 3 ] ) ) ,
Nouvelle colonne ( "Colonne 2" , Personnage , Nominal , Définir les valeurs ( { "un" , "b" , "c" } ) )
) ;
fp = "c:\temp\csv_exemple.csv" ;
dt << sauvegarder ( fp ) ;
Re : Comment puis-je enregistrer plusieurs tables de données .jmp ouvertes en tant que fichiers .csv ?Idéalement, il s'agirait d'un simple correctif sur une seule ligne, mais en y regardant de plus près, cela ne semble pas être le cas. Sauvegarder et Enregistrer sous enregistrez spécifiquement une table de données JMP, car au-delà du chemin/nom de fichier, il n'y a pas de paramètres supplémentaires pour ces fonctions, comme le type de fichier. Il existe une autre fonction de sortie de fichier, Enregistrer le fichier texte , mais il génère uniquement une chaîne spécifique dans un fichier texte. Heureusement, j'ai une expérience considérable en programmation, donc la méthode pour accomplir cette tâche m'a été assez simple après y avoir réfléchi, car la plupart des langages de programmation créeraient un fichier CSV de cette manière.
Vous trouverez ci-dessous un script qui accomplit ce que vous voulez, il vous suffira de l'adapter à votre table de données ; vous devrez spécifier vos colonnes particulières dans votre table de données. Ce script détermine d'abord le nombre de lignes dans la table de données. Ensuite, une boucle For est utilisée pour capturer les données de colonnes spécifiques dans chaque ligne de la table de données et les écrire dans un fichier texte. Sur la première ligne, un nouveau fichier est créé ou un fichier existant est écrasé. Pour toutes les lignes restantes, les données sont ajoutées au fichier existant. De plus, pour que vous ne vous retrouviez pas avec un fichier qui n'est qu'une ligne continue de données, des sauts de ligne sont ajoutés à toutes les lignes sauf à la dernière du fichier.
Le seul avantage d'avoir à écrire des fichiers texte de cette manière est que vous pouvez choisir les colonnes à exporter si vous ne voulez que certaines données. Évidemment, ce processus est fastidieux si vous voulez toutes vos données et que vous avez plusieurs colonnes, mais comme je l'ai mentionné plus tôt, cette technique est typique de la plupart des langages de programmation.
Noms par défaut ici ( 1 ) ;
dt = Tableau de données actuel () ;
dernière rangée = N lignes () ;
Pour ( je = 1 , je <= dernière rangée , je ++,
//récupérer les colonnes
emplacement = : Emplacement [ je ] ;
jour = : Jour [ je ] ;
temps = : Temps [ je ] ;
compter = : Compter [ je ] ;
moyenne = : Moyenne [ je ] ;
maximum = : Max [ je ] ;
// crée une ligne délimitée par des virgules
csvRow = Concater des objets (
{ emplacement , Carboniser ( jour ) , Carboniser ( temps ) , Carboniser ( compter ) , Carboniser ( moyenne ) , Carboniser ( maximum )} ,
","
) ;
// enregistrer la ligne dans un fichier texte
Si ( je == 1 ,
Enregistrer le fichier texte ( "$DESKTOP/Fichier de test.csv" , csvRow , Mode ( "Remplacer" )) ,
Enregistrer le fichier texte ( "$DESKTOP/Fichier de test.csv" , csvRow , Mode ( "Ajouter" ))
) ;
// exporte le saut de ligne pour toutes les lignes sauf la dernière
Si ( je != dernière rangée , Enregistrer le fichier texte ( "$DESKTOP/Fichier de test.csv" , "\!n" , Mode ( "Ajouter" ))) ;
) ;