Quartz | Level 8

## How to divide the variable into rows

Hii all,

i have a data like

 Empid Description 101 A,B,C,D 102 E 103 D,E,F 104 K 105 X,Y,Z

and I want the output like

 Empid Description 101 A 101 B 101 C 101 D 102 E 103 D 103 E 103 F 104 K 105 X 105 Y 105 Z

The description is having any "," then devide that row into multiple(if comma is there between the text).

Any help would be greatly appreciated.

1 ACCEPTED SOLUTION

Accepted Solutions
Lapis Lazuli | Level 10

## Re: How to divide the variable into rows

data have;
x="A,B,C,D";output;
x="B&C"; output;
x="E,F;C";output;
run;

data want;
set have;
do i=1 by 1;
_x=scan(x,i);
if missing(_x) then return;
output;
end;
drop x;
run;

3 REPLIES 3

## Re: How to divide the variable into rows

Try this:

``````data want;
set have(rename=(description=d));
length description \$1; /* If your real items are not single characters, specify a sufficiently large length! */
do i=1 to countw(d, ',');
description=scan(d, i, ',');
output;
end;
drop d i;
run;
``````
Quartz | Level 8

## Re: How to divide the variable into rows

Could you suggest me if description column is having special characters then

ex;  A,B,C,D

B&C

E,F;C

Lapis Lazuli | Level 10

## Re: How to divide the variable into rows

data have;
x="A,B,C,D";output;
x="B&C"; output;
x="E,F;C";output;
run;

data want;
set have;
do i=1 by 1;
_x=scan(x,i);
if missing(_x) then return;
output;
end;
drop x;
run;

Discussion stats
• 3 replies
• 1040 views
• 0 likes
• 3 in conversation