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

I need to amend this data step so that the column names are written to output file in row 1.

 

filename csv "G:\Departments\Research\MAP\&yr1&yr2.\Fall &yr.\clean_for_enrich.csv";

data _null_;
set join1b ;
file csv dlm=',';
put ( _all_ ) (+0);
run;

1 ACCEPTED SOLUTION

Accepted Solutions
ballardw
Super User

Easiest may be

Proc export data=join1b outfile=csv dbms=csv;

        

run;

View solution in original post

3 REPLIES 3
ballardw
Super User

Easiest may be

Proc export data=join1b outfile=csv dbms=csv;

        

run;

GreggB
Pyrite | Level 9

Agreed. I was making it  too complicated.

ballardw
Super User

If you need to provide a specific order, such for a file that may be read by another program that requires a fixed order then the PUT statement would be appropriate but since you didn't show that then I though export would work.

 

The easy semi-kludge for the header row is to include something like this BEFORE the Put statement in the order to match the variables on the put statement:

 

If _n_ = 1 then put '"column 1 text","column 2 text", ...,"column n text"';

note that is '  "   and "  ' at the start and end. If there are no spaces or commas desired in the Column x text then the " could be omitted.

 

The line basically says: If this is the first line of the file then put the header row. 

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!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

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
  • 3 replies
  • 11464 views
  • 0 likes
  • 2 in conversation