Hi experts,
I have one variable named as Country and it has values below
India
Unites States of America
United Arab Emirates
Need to create diffrent variables using these values example var1-india var2 United var3-States Var4-of var5-America etc....
and this needs to be dynamic ,( not with hardcoded) Please advice
Whatever you are intending to do with this data, there are probably better ways. But here is one way to get what you ask:
data each_word;
set have;
if country > ' ' then do _n_= 1 to countw(country);
word = scan(country, _n_);
total_words + 1;
output;
end;
run;
proc transpose data=each_word out=want (drop=_name_) prefix=var;
var word;
id total_words;
run;
Quick question: Why? 🙂
Second quick question, what is the question? Post example test data in the form of a datastep using a code window (its the {i}) and what the output should look like. Then explain any logic between. If it is just splitting a string up into component parts then:
data want; set have; array var{5} $200; do i=1 to countw(your_string," "); var{i}=scan(your_string,i," "); end; run;
Hi , This was my need , thanks
Whatever you are intending to do with this data, there are probably better ways. But here is one way to get what you ask:
data each_word;
set have;
if country > ' ' then do _n_= 1 to countw(country);
word = scan(country, _n_);
total_words + 1;
output;
end;
run;
proc transpose data=each_word out=want (drop=_name_) prefix=var;
var word;
id total_words;
run;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.