🔒 This topic is solved and locked.
Need further help from the community? Please
sign in and ask a new question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 11-19-2019 11:20 AM
(642 views)
Hi friends:
I have this Table containing info of 3 cats with their corresponding diseases:
cat | disease |
1 | a,b,c |
2 | a,b,d |
3 | c,d,e,f,g |
Now i need each disease in its respective row:
cat | disease |
1 | a |
1 | b |
1 | c |
2 | a |
2 | b |
2 | d |
3 | c |
3 | d |
3 | e |
3 | f |
3 | g |
Thanks in advance
1 ACCEPTED SOLUTION
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
data have;
input cat disease :$10.;
cards;
1 a,b,c
2 a,b,d
3 c,d,e,f,g
;
data want;
set have;
do _n_=1 to countw(disease,',');
_d=scan(disease,_n_,',');
output;
end;
rename _d=disease;
drop disease;
run;
2 REPLIES 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
data have;
input cat disease :$10.;
cards;
1 a,b,c
2 a,b,d
3 c,d,e,f,g
;
data want;
set have;
do _n_=1 to countw(disease,',');
_d=scan(disease,_n_,',');
output;
end;
rename _d=disease;
drop disease;
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
please try
data have;
input cat disease:$100.;
cards;
1 a,b,c
2 a,b,d
3 c,d,e,f,g
;
data want;
set have(rename=(disease=_disease));
cnt=countw(_disease,',');
do i = 1 to cnt;
disease=scan(_disease,i,',');
output;
end;
run;
Thanks,
Jag
Jag