Hi,
I have a variable with lists of items in it.
For example,
a,b
a,b,e
b
e,f,g,h
Does anyone know how to create a new variable with each item having its own row like this:
a
b
a
b
e
b
e
f
g
h
Thank you.
The basic approach is to parse the string and for each piece extract a value and execute an Output statement. However the actual content may cause issues but for your example, assuming the variable is named Text some thing like this in a data step:
Data want;
set have;
length ShortText $ 10; /* or some value large enough to capture the longest substring in Text*/
Do i = 1 to Countw(Text,',');
ShortText=scan(text,i,',');
output;
End;
drop i;
Run;
The basic approach is to parse the string and for each piece extract a value and execute an Output statement. However the actual content may cause issues but for your example, assuming the variable is named Text some thing like this in a data step:
Data want;
set have;
length ShortText $ 10; /* or some value large enough to capture the longest substring in Text*/
Do i = 1 to Countw(Text,',');
ShortText=scan(text,i,',');
output;
End;
drop i;
Run;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.