DATA Step, Macro, Functions and more

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

Accepted Solution Solved
Reply
New Contributor
Posts: 3
Accepted Solution

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?

Posted in reply to Astounding
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!

View solution in original post


All Replies
Super User
Posts: 5,518

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?

Posted in reply to Astounding
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.

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

Discussion stats
  • 3 replies
  • 95 views
  • 1 like
  • 2 in conversation