i have multiple .csv files in a unix directory.
every file is having variable names as header.even for empty file also.
suppose take 3 files
a.csv
b.csv
c.csv
a.csv contains data as
name;age,salary;
raja;34;4000;
ravi;33;5000;
kumar;25;3000;
b.csv contains data as
name;age,salary;
ajay;40;4500;
and c.csv contains
name;age,salary; (only headers)
Now i want to import and append all these files in to a single dataset.
i tried infile statement with *.csv to import all at a time.
but i m not getting correct data.
please help me . its urgent.
thank you in advance
Answers were Sorted based on User's Feedback
/*So for this, you have to create a macro to store the path of the folder where your files are located .*/
/*STEP 1:*/
%let dirname = C:UsersRANAJIDesktopSAS_Class_CodeMultiple_csv_files;
filename DIRLIST pipe "dir /B &dirname*.csv";
data dirlist ;
length fname $256;
infile dirlist length=reclen;
input fname $varying256. reclen ;
run;
proc print data = dirlist;
run;
/* so , once your all files are located there, you can proceed with step 2 */
/* Step2*/
data all_text (drop=fname);
length myfilename $100;
length name $25;
set dirlist;
filepath = "&dirname"||fname;
infile dummy filevar = filepath length=reclen end=done missover;
do while(not done);
myfilename = filepath;
input name $ x1 x2 x3;
output;
end;
run;
proc print data=all_text;
run;
you will have all the files appended in the new dataset.
| Is This Answer Correct ? | 0 Yes | 0 No |
/*step 1: create a macro for the destination folder */
%let dirname = C:UsersRANAJIDesktopSAS_Class_CodeMultiple_csv_files;
filename DIRLIST pipe "dir /B &dirname*.csv";
data dirlist ;
length fname $256;
infile dirlist length=reclen;
input fname $varying256. reclen ;
run;
proc print data = dirlist;
run;
/* step 2 , append all the files in one. */
data all_text (drop=fname);
length myfilename $100;
length name $25;
set dirlist;
filepath = "&dirname"||fname;
infile dummy filevar = filepath length=reclen end=done missover;
do while(not done);
myfilename = filepath;
input name $ x1 x2 x3;
output;
end;
run;
proc print data=all_text;
run;
| Is This Answer Correct ? | 0 Yes | 0 No |
You have a data set of 100 observations,how can you restrict the output so that the output has only data from row no. 10 to row no. 20
AE datasets names? how many types?
what is operational data and operational system? : Sas-di
If i doest required Cumilative frequency in my table, generated by using PROC FREQ what i had to do?
If you use a symput in a data step, when and where can you use the macro variable? : sas-macro
How would you determine the number of missing or nonmissing values in computations?
What was the last computer book you purchased? Why?
% let A=3+4 what is result
How can a SAS WEB REPORT STUDIO USER identify which report tabs they have been permitted without entering the SAS WEB REPORT STUDIO
What is the use of stop statement?
Explain the use of proc gplot? : sas-grid-administration
If money were no object, what would you like to do?