2017-02-16 1 views
0

J'essaie d'exporter des données de SAS dans un fichier CSV à partir d'une table que j'ai créée en utilisant PROC SQL. (Test_data a été créée en utilisant une instruction PROC SQL Select) J'ai essayé le code suivant:Imprimer un fichier CSV à partir de SAS en utilisant libname

LIBNAME libout "C:\Users\Outbox"; 
proc export data=test_data dbms=csv replace outfile="&libout.\test_data.csv"; 
run; 

Lors de l'exécution de ce code équeuté l'erreur suivante apparaît:

ERROR: Physical file does not exist, C:\windows\system32\&libout.\test_data.csv. 

Je sais que je peux spécifier le chemin à l'aide d'un chaîne pour outfile directement, mais j'essaie d'utiliser un LIBNAME pour une application ultérieure dans un autre système à la place. Merci d'avance.

Répondre

1

libname est pour l'ensemble de données SAS; filename est pour les fichiers.

filename fileout "C:\Users\Outbox\test_data.csv"; 
proc export data=test_data dbms=csv replace outfile=fileout; 
run; 

Vous pouvez également utiliser une variable macro si vous voulez juste spécifier le répertoire, semblable à la réponse de Superflu. Mais ne mettez pas de citations autour d'elle.

%let outdir = c:\users\outbox; 
proc export data=test_data dbms=csv replace outfile="&outdir.\test_data.csv"; 
run; 

Dans les deux cas, vous pouvez spécifier le nom de fichier ou la variable macro dans un endroit et ensuite l'utiliser dans un endroit très différent, ils ne doivent pas être séquentielle - tout comme libnames.

+0

A travaillé parfaitement! Merci! – MRR

0

Vous utiliseriez un nom de bibliothèque si vous vouliez stocker un ensemble de données SAS. Dans ce cas, vous voulez enregistrer un fichier csv, vous avez juste besoin d'une macro: %let libout = "C:\Users\Outbox";