Solved
New Contributor
Posts: 3

# how to find the times of stopout in each row of matrix with 0 and 1?

Hi, experts,

I am a new learner of SAS. Now I have a large dataset with just 0 and 1(please see the attachment). For each ID, I want to find the times of stopout. Here, for instance, one stopout is like this, 101, 1001, 10001, and so on. For the first ID, 001010011, there are two stopouts. Thank you so much for your great help in advance!

Johnathan

Accepted Solutions
Solution
‎07-11-2017 12:07 AM
New Contributor
Posts: 3

## Re: how to find the times of stopout in each row of matrix with 0 and 1?

Hi Astounding, Thank you for your response to my question. However, when I run the codes, the results of n_stopouts for each ID is zero!

All Replies
Super User
Posts: 6,642

## Re: how to find the times of stopout in each row of matrix with 0 and 1?

Here's an approach:

data want;

set have;

array y {10};

n_stopouts = 0;

do i=1 to 10;

if y{i} = 1 then do;stage=1;

if stage=2 then n_stopouts + 1;

stage=1;

end;

else if y{i} =0 and stage=1 then stage=2;

end;

drop stage;

run;

It's untested, but looks like it should work.

Solution
‎07-11-2017 12:07 AM
New Contributor
Posts: 3

## Re: how to find the times of stopout in each row of matrix with 0 and 1?

Hi Astounding, Thank you for your response to my question. However, when I run the codes, the results of n_stopouts for each ID is zero!
New Contributor
Posts: 3

## Re: how to find the times of stopout in each row of matrix with 0 and 1?

Hi Astounding, when I delete statement stage = 1 after the statement if y{i} = 1 then do, your codes works. Here, I would like to give you big "thank you" to you. Good night!
☑ This topic is solved.