/* Create text files for Whatever Purpose */ /* Specify the input dataset and the number of rows per file */ %let input_dataset = your_dataset_name; %let rows_per_file = 250000; /* you can change this if your file size needs change */
/* Create a macro variable for the total number of records in the dataset */ proc sql noprint; select count(*) into :total_records from &input_dataset; quit;
%put &total_records;
/* Calculate the number of files needed */ %let num_files = %sysevalf((&total_records/&rows_per_file),integer); %put &num_files;
%macro export_to_text_files; %do i = 1 %to &num_files+1;
/* Calculate the starting and ending record numbers for each file */ %let start_record = %eval((&i - 1) * &rows_per_file + 1); %let end_record = %eval(&i * &rows_per_file);
/* Create a data step to export a subset of the dataset to a text file */
data _null_;
file "output_file_&i..txt"; /** ad your directory here in front of the file name **/
set &input_dataset (firstobs=&start_record obs=&end_record);
put (_all_)(=); /* this makes sure only the variables you created are part of the output file */
run;
%end;
%mend;
/* Call the macro to export the dataset to text files */
%export_dataset_to_text_files;
... View more