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-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

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