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;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.