Conversion efficace D'un ensemble de données SAS en un CSV
est-ce que quelqu'un peut me dire quelle est la manière la plus rapide de convertir programmatiquement un ensemble de données SAS en un fichier CSV. Je sais que je peux utiliser un data step et la sortie vers un fichier, etc. Mais est-ce le seul moyen?
Merci, Adnan.
3 réponses
quelque chose dans ce sens?
proc export data=sashelp.class
outfile='c:\temp\sashelp class.csv'
dbms=csv
replace;
run;
5 différentes façons de créer .Fichier CSV D'un ensemble de données SAS.
consulter http://studysas.blogspot.com/2009/02/how-to-create-comma-separated-file-csv.html
Les réponses ici ont abordé de nombreuses façons de créer un fichier csv, mais pas nécessairement l'efficacité de ces méthodes. J'ai créer un jeu de données échantillon (temp
) avec 100 000 lignes et cinq colonnes pour tester et comparer les méthodes d'exportation de l'ensemble de données sas à un csv nommé temp.csv
.
La première méthode:Procédure D'Exportation. Moment de l'exécution: 0.43 secondes.
PROC EXPORT data=temp
outfile="temp.csv" dbms=csv replace;
Rapide en temps d'exécution et simple, dans la boîte de flexibilité lors de la de choisir d'autres options. Cela étant dit, il n'est pas le plus fort pour la personnalisation
la seconde méthode:ODS avec Impression de la Procédure. Moment de l'exécution: 14.09 secondes.
ODS csv file="temp.csv";
PROC PRINT data=temp noobs;
RUN;
ods csv close;
cette méthode est la pire des trois pour la plupart des cas d'utilisation, bien qu'il y ait quelques cas d'Utilisation spéciale. Il est agréable pour la sortie temporaire de procédures précédemment écrites, surtout si vous voulez que la sortie reste dans le fichier lst (si elle n'est pas trop gros). Il peut également être utile lorsque vous souhaitez convertir une autre procédure (par exemple, un complexe tabulate
) vers un fichier sans autre manipulation. Si vous n'avez pas besoin de l'imprimer dans le fichier lst, fermez votre liste (ods listing close
) ou cela va prendre beaucoup, beaucoup plus.
La troisième méthode: Fichier De Déclaration. Moment de l'exécution: 0,06 secondes.
DATA _null_;
FILE "temp.csv ";
SET temp;
put (_all_) (',');
RUN;
Alors que les performances de cette méthode n'est pas mauvaise, elle n'est pas intuitive et paraît compliquée. Comme mentionné ci-dessus cependant, vous auriez plus de contrôle sur la sortie, et il a le temps d'exécution le plus rapide de tous.