useR
useR

Reputation: 3082

SAS Export data to create standard and comma-delimited raw data files

i m new to sas and studying different ways to do subject line task.

Here is two ways i knew at the moment

Method1: file statement in data step

  *DATA _NULL_ / FILE / PUT ;
data _null_;
    set engappeal;
    file 'C:\Users\1502911\Desktop\exportdata.txt' dlm=',';
    put id $ name $ semester scoreEng;
run;

Method2: Proc Export

proc export
    data = engappeal
    outfile = 'C:\Users\1502911\Desktop\exportdata2.txt'
    dbms = dlm;
    delimiter = ',';
run;

Question:

1, Is there any alternative way to export raw data files

2, Is it possible to export the header also using the data step method 1

Upvotes: 1

Views: 1229

Answers (2)

Tom
Tom

Reputation: 51566

You need to use the DSD option on the FILE statement to make sure that delimiters are properly quoted and missing values are not represented by spaces. Make sure you set your record length long enough, including delimiters and inserted quotes. Don't worry about setting it too long as the lines are variable length.

You can use CALL VNEXT to find and output the names. The LINK statement is so the loop is later in the data step to prevent __NAME__ from being included in the (_ALL_) variable list.

data _null_;
  set sashelp.class ;
  file 'class.csv' dsd dlm=',' lrecl=1000000 ;
  if _n_ eq 1 then link names;
  put (_all_) (:);
  return;
names:
  length __name__ $32;
  do while(1);
    call vnext(__name__);
    if upcase(__name__) eq '__NAME__' then leave;
    put __name__ @;
  end;
  put;
return;
run;

Upvotes: 0

Kay
Kay

Reputation: 365

You can also make use of ODS

ods listing file="C:\Users\1502911\Desktop\exportdata3.txt";
    proc print data=engappeal noobs;
    run;
ods listing close;

Upvotes: 1

Related Questions