BookmarkSubscribeRSS Feed
cody_q
Calcite | Level 5

Hey all ,

I am working data set with a lot of columns more than 50 .
I would like to append all the content of the 50 columns into a column with many rows.

I have to use SAS EG to do it .

Anybody knows how to?

Thanks .

Cody

5 REPLIES 5
Alpay
Fluorite | Level 6

Can you provide some example data and the way you want to append the data?

Example:

Have:

Want:

ChrisHemedinger
Community Manager

EG offers Data->Transpose (general) and Data->Stack Columns (specific for your case), but it's still a bit tricky to manage without a "recipe".  I find Rick Wicklin's blog posts on transposing to be very helpful.  Here's one about converting from wide to long.

Chris

SAS Hackathon registration is open! Build your skills. Make connections. Enjoy creative freedom. Maybe change the world.
cody_q
Calcite | Level 5

Hi all ,


Thank you for your replies. Here's the "recipe". I hope it makes sense to you all.

F1 to F10 are the columns.

 

F1


 

 

F2


 

 

F3


 

 

F4


 

 

F5


 

 

F6


 

 

F7


 

 

F8


 

 

F9


 

 

F10


 

 

There


 

 

are


 

 

40


 

 

students


 

 

in


 

 

the


 

 

class


 

 

.


 

 

They


 

 

are


 

 

all


 

 

studying


 

 

for


 

 

Math


 

 

and


 

 

Science


 

 

.


 

 

They


 

 

have


 

 

learnt


 

 

valuable


 

 

lessons


 

 

from


 

 

the


 

 
  1. Classes.
 

 

The


 

 

teachers


 

 

are


 

 

proud


 

 

of


 

 

them


 

 

.


 

 


 

 


 

 


 

 


 

 


 

 


 

 


 

 


 

Become to F1 as the only column with many rows.

 

F1


 

 

There


 

 

are


 

 

40


 

 

students


 

 

in


 

 

the


 

 

class


 

 

.


 

 

They


 

 

are


 

 

all


 

 

studying


 

 

for


 

 

Math


 

 

and


 

 
  1. Science.
 

 

They


 

 

have


 

 

learnt


 

 

valuable


 

 

lessons


 

 

from


 

 

the


 

 
  1. classes.
 

 

The


 

 

teachers


 

 

are


 

 

proud


 

 

of


 

 

them


 

 

.


 

Thank you.

Linlin
Lapis Lazuli | Level 10

how about:

data have;

input (a1-a5) ($);

cards;

a b c d e f

g h i j k l

;

data want;

   set have;

   array _a(*) $ a1-a5;

   do _n_=1 to dim(_a);

   f1=_a(_n_);

   output;

   end;

   keep f1;

proc print;run;

Linlin

QLi
Fluorite | Level 6 QLi
Fluorite | Level 6

Try to use proc transpose and maybe work it out.

data have;

input Name $ Sex $ Age height weight;

cards;

alfred m 14 69 112.5

alice f 13 56.5 84

barbara f 13 65.3 98

;

run;

proc sort data=have out=have2; by name; run;

proc transpose data=have2 out=have_t;

by name;

var height weight age ; run;

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
SAS Enterprise Guide vs. SAS Studio

What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.

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
  • 5 replies
  • 2307 views
  • 0 likes
  • 5 in conversation