infile csv sas

csv - infile sas



Convertir eficientemente un conjunto de datos SAS en un CSV (3)

¿Puede alguien decirme cuál es la forma más rápida de convertir mediante programación un conjunto de datos SAS en un archivo CSV? Sé que puedo usar un paso de datos y una salida a un archivo, etc. ¿Pero es esa la única manera?

Gracias, Adnan.



Las respuestas aquí han abordado muchas formas de crear un csv, pero no necesariamente la eficiencia de estos métodos. Creo un conjunto de datos de muestra ( temp ) con 100,000 filas y cinco columnas para probar y comparar los métodos para exportar el conjunto de datos sas a un csv llamado temp.csv .

El primer método: el procedimiento de exportación . Tiempo de ejecución: 0,43 segundos.

PROC EXPORT data=temp outfile="temp.csv" dbms=csv replace;

Tiempo de ejecución rápido y flexibilidad simple, dentro de la caja al elegir otras opciones. Dicho esto, no es el más fuerte para la personalización.

El segundo método: ODS con procedimiento de impresión . Tiempo de ejecución: 14.09 segundos.

ODS csv file="temp.csv"; PROC PRINT data=temp noobs; RUN; ods csv close;

Este método es la peor opción de los tres para la mayoría de los casos de uso, aunque existen algunos casos de uso especiales. Es bueno para la salida temporal de procedimientos escritos previamente, especialmente si desea que la salida permanezca en el archivo lst (si no es demasiado grande). También puede ser útil cuando desea convertir otro procedimiento (por ejemplo, un tabulate complicado) a un archivo sin más manipulación. Si no necesita la impresión en el archivo lst, cierre su lista ( ods listing close ) o esto llevará mucho, mucho más tiempo.

El tercer método: Declaración de archivo . Tiempo de ejecución: 0,06 segundos.

DATA _null_; FILE "temp.csv "; SET temp; put (_all_) ('',''); RUN;

Si bien el rendimiento de este método no es malo, no es intuitivo y parece confuso. Sin embargo, como se mencionó anteriormente, tendría más control sobre la salida, y tiene el tiempo de ejecución más rápido de todos.


algo en este sentido?

proc export data=sashelp.class outfile=''c:/temp/sashelp class.csv'' dbms=csv replace; run;