hello.
I am using PROC TRANSPOSE to transpose three variables in a dataset, using ID as the BY variable. Data and syntax is included. However, I would like to keep two other variables: age and gender, so that my final file looks like the table below. I know how to do it with a different method, but at times it would be much more efficient if I could use PROC TRANSPOSE. Any suggestion?
| id | _NAME_ | COL1 | gender | age |
| 1 | v1 | 3 | M | 20 |
| 1 | v2 | 4 | M | 20 |
| 1 | v3 | 3 | M | 20 |
| 2 | v1 | 4 | F | 22 |
| 2 | v2 | 3 | F | 22 |
| 2 | v3 | 2 | F | 22 |
| 3 | v1 | 5 | M | 34 |
| 3 | v2 | 1 | M | 34 |
| 3 | v3 | 5 | M | 34 |
data have;
input id age gender$ v1 v2 v3;
cards;
1 20 M 3 4 3
2 22 F 4 3 2
3 34 M 5 1 5
;
proc print;
proc transpose data=have out=want;
var v1 v2 v3;
by id;
proc print;
how silly of me.
e
Hi can have the following:
data have;
input id age gender$ v1 v2 v3;
cards;
1 20 M 3 4 3
2 22 F 4 3 2
3 34 M 5 1 5
;
proc print;
proc transpose data=have out=want;
var v1 v2 v3;
by id gender age;
proc print;
Read more about Proc transpose here:
thank you.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.
Ready to level-up your skills? Choose your own adventure.