BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
SAShole
Pyrite | Level 9

Hi All,

I'm trying to export a SAS dataset to a text file using the SAS labels as headers in my text file. i've specified the label option but I still get variable names instead. here is an example of what i'm doing and the results i get:

data Have;

input X Y 1.  ;

label x = "X Label" y = "Y Label";

cards;

1 3

2 4

;

run;

PROC EXPORT DATA= Have

            OUTFILE= "E:\Jeff B\Open\Want.txt"

            DBMS=DLM REPLACE;

            DELIMITER='7C'x;

            PUTNAMES=YES;

            Label; /* variable names print despite label option being specified */

RUN;

Here is the log, you can see that the "PUT" statment is still using variable names.

347  data Have;

348  input X Y 1.  ;

349  label x = "X Label" y = "Y Label";

350  cards;

NOTE: The data set WORK.HAVE has 2 observations and 2 variables.

NOTE: DATA statement used (Total process time):

      real time           0.00 seconds

      cpu time            0.00 seconds

353  ;

354  run;

355

356  PROC EXPORT DATA= Have

357              OUTFILE= "E:\Jeff B\Open\Want.txt"

358              DBMS=DLM REPLACE ;

359                   Label;

360       DELIMITER='7C'x;

361       PUTNAMES=YES;

362  RUN;

363   /**********************************************************************

364   *   PRODUCT:   SAS

365   *   VERSION:   9.2

366   *   CREATOR:   External File Interface

367   *   DATE:      07AUG12

368   *   DESC:      Generated SAS Datastep Code

369   *   TEMPLATE SOURCE:  (None Specified.)

370   ***********************************************************************/

371      data _null_;

372      %let _EFIERR_ = 0; /* set the ERROR detection macro variable */

373      %let _EFIREC_ = 0;     /* clear export record count macro variable */

374      file 'E:\Jeff B\Open\Want.txt' delimiter='|' DSD DROPOVER lrecl=32767;

375      if _n_ = 1 then        /* write column names or labels */

376       do;

377         put

378            "X"

379         '|'

380            "Y"

381         ;

382       end;

383     set  HAVE   end=EFIEOD;

384         format X best12. ;

385         format Y best12. ;

386       do;

387         EFIOUT + 1;

388         put X @;

389         put Y ;

390         ;

391       end;

392      if _ERROR_ then call symputx('_EFIERR_',1);  /* set ERROR detection macro variable */

393      if EFIEOD then call symputx('_EFIREC_',EFIOUT);

394      run;

NOTE: The file 'E:\Jeff B\Open\Want.txt' is:

      Filename=E:\Jeff B\Open\Want.txt,

      RECFM=V,LRECL=32767,File Size (bytes)=0,

      Last Modified=07Aug2012:12:21:50,

      Create Time=07Aug2012:12:15:44

NOTE: 3 records were written to the file 'E:\Jeff B\Open\Want.txt'.

      The minimum record length was 3.

      The maximum record length was 3.

NOTE: There were 2 observations read from the data set WORK.HAVE.

NOTE: DATA statement used (Total process time):

      real time           0.01 seconds

      cpu time            0.01 seconds

2 records created in E:\Jeff B\Open\Want.txt from HAVE.

NOTE: "E:\Jeff B\Open\Want.txt" file was successfully created.

NOTE: PROCEDURE EXPORT used (Total process time):

      real time           0.07 seconds

      cpu time            0.07 seconds

1 ACCEPTED SOLUTION

Accepted Solutions
Reeza
Super User

add the label statement into your proc export statement instead, before the DBMS keyword:

PROC EXPORT DATA= Have

            OUTFILE= "C:\temp\Want.txt"

           label DBMS=DLM REPLACE ;

View solution in original post

2 REPLIES 2
Reeza
Super User

add the label statement into your proc export statement instead, before the DBMS keyword:

PROC EXPORT DATA= Have

            OUTFILE= "C:\temp\Want.txt"

           label DBMS=DLM REPLACE ;

SAShole
Pyrite | Level 9

Thanks Reeza.

I wonder why in my code label is blue, but in  your code (the correct way) its not,  just seems counter-intuitive?

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1799 views
  • 0 likes
  • 2 in conversation