data sensitive;
input type1 $ type2 $ var1 $ var2 $ var3 $ var4 $;
cards;
t1 ta custid custname m mobile
;
With the dataset above, how can I transpose var1,var2,var3,and var4 only? The desired dataset should look like:
Var_need
custid
custname
m
mobile
Is it possible? Anyone can help? Thanks.
Using a loop and the output-statement:
data work.want; set work.sensitive; length Var_Need $ 8; /* important: must be equal to max vlength of var1-var4 */ array vars var1-var4; do i = 1 to dim(vars); Var_Need = vars[i]; output; end; keep Var_Need; run;
This is not complicated, what have you tried? Have you for instance tried the tranpose procedure, which you may find useful in this case:
data sensitive; input type1 $ type2 $ var1 $ var2 $ var3 $ var4 $; cards; t1 ta custid custname m mobile ; run; proc transpose data=sensitive out=want; by type1 type2; var var:; run;
Try this...
proc transpose data=HAVE out=WANT;
var VAR: ;
run;
Hope this helps.
@scb you can do it like below
data sensitive;
input type1 $ type2 $ var1 $ var2 $ var3 $ var4 $;
cards;
t1 ta custid custname m mobile
;
run;
proc transpose data=sensitive out=want(drop=_name_ rename=(col1=var_need));
var var1-var4;
run;
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!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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: