I have a one column data which contains information about multiple observations.
Each observation starts with a first column value of "notes".
I.E.
notes
name A1
code B1
...
notes
name A2
code B2
...
...
notes
name A200
code B200
...
Is there a good way to transpose this into 200 rows?
PS. I would like to have name, code, ..., as my column variables after transposing.
Like this?
data HAVE;
input COL1 $16.;
cards;
notes
name A1
code B1
..
notes
name A2
code B2
;
run;
data WANT;
set HAVE;
length NAME CODE $8;
retain NAME;
if COL1=:'name' then NAME=substr(COL1,6);
if COL1=:'code' then do ;
CODE=substr(COL1,6);
output;
call missing(NAME, CODE);
end;
run;
Like this?
data HAVE;
input COL1 $16.;
cards;
notes
name A1
code B1
..
notes
name A2
code B2
;
run;
data WANT;
set HAVE;
length NAME CODE $8;
retain NAME;
if COL1=:'name' then NAME=substr(COL1,6);
if COL1=:'code' then do ;
CODE=substr(COL1,6);
output;
call missing(NAME, CODE);
end;
run;
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.