Help using Base SAS procedures

Splitting string data in multiple rows.

Accepted Solution Solved
Reply
Contributor
Posts: 66
Accepted Solution

Splitting string data in multiple rows.

[ Edited ]

Hi.

I'm struggling a little with extracting string data from multiple rows via a delimiter. I have 1 variable named Rule_Results with multiple observations.

The data is pretty standard through out the rows, here's a snapshot of three rows:-

 

USERKNOWN=Y;SIGMATCH=N;SIGMATCHDEVICEALIAS=N;DEVICEIDCHECK=N;EXCEPTION=N;UNTRUSTEDIP=N; USERKNOWN=Y;SIGMATCH=N;SIGMATCHDEVICEALIAS=N;DEVICEIDCHECK=N;EXCEPTION=N;UNTRUSTEDIP=N; USERKNOWN=Y;SIGMATCH=N;SIGMATCHDEVICEALIAS=N;DEVICEIDCHECK=N;EXCEPTION=N;UNTRUSTEDIP=N;

 

What im trying to do is us the ";" delimiter to extract the data in between into a new row.

 

I've found the following on these boards but am struggling to get it to work. 

 

data loop;
set Import;

do i = 1 to countw(Rule_Results,';');
_Rule_Results_ = scan(Rule_Results,i,';');
end;

run;

 

 

Any help is appreciated. Stret


Accepted Solutions
Solution
‎04-19-2018 11:10 AM
Super User
Posts: 23,683

Re: Splitting string data in multiple rows.

You're missing the OUTPUT statement to create a new record.

 

data loop;
set Import;

do i = 1 to countw(Rule_Results,';');

_Rule_Results_ = scan(Rule_Results,i,';');

OUTPUT;
end;


run;

View solution in original post


All Replies
Solution
‎04-19-2018 11:10 AM
Super User
Posts: 23,683

Re: Splitting string data in multiple rows.

You're missing the OUTPUT statement to create a new record.

 

data loop;
set Import;

do i = 1 to countw(Rule_Results,';');

_Rule_Results_ = scan(Rule_Results,i,';');

OUTPUT;
end;


run;
Contributor
Posts: 66

Re: Splitting string data in multiple rows.

So close!!! Thanks for the help
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 180 views
  • 0 likes
  • 2 in conversation