Lapis Lazuli | Level 10

## Split info in rows

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

1 ACCEPTED SOLUTION

Accepted Solutions
Tourmaline | Level 20

## Re: Split info in rows

``````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
Tourmaline | Level 20

## Re: Split info in rows

``````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;``````
Amethyst | Level 16

## Re: Split info in rows

``````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
Discussion stats
• 2 replies
• 451 views
• 0 likes
• 3 in conversation