<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Calculating Injury Rates in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583647#M166163</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/276697"&gt;@nbku222&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I was sleeping when you inquired on 'year and time'.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I don't understand the input data set for this situation. Please place your question with a new subject line so that a new thread is created which will be current.&lt;/P&gt;</description>
    <pubDate>Sat, 24 Aug 2019 10:46:49 GMT</pubDate>
    <dc:creator>KachiM</dc:creator>
    <dc:date>2019-08-24T10:46:49Z</dc:date>
    <item>
      <title>Calculating Injury Rates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583520#M166114</link>
      <description>&lt;P&gt;Hello, I am learning SAS and I have this example data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;race&lt;/TD&gt;&lt;TD&gt;ID&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Fatality&lt;/TD&gt;&lt;TD&gt;Surface&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx001&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx001&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Synth&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx001&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx001&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx001&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Synth&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx001&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx001&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Synth&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx001&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Synth&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx002&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Synth&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx002&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx002&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Turf&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx002&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx002&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx002&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx002&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Turf&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx002&lt;/TD&gt;&lt;TD&gt;16&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Turf&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx003&lt;/TD&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Synth&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx003&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx003&lt;/TD&gt;&lt;TD&gt;19&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx003&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx003&lt;/TD&gt;&lt;TD&gt;21&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx003&lt;/TD&gt;&lt;TD&gt;22&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;xxx003&lt;/TD&gt;&lt;TD&gt;23&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;Dirt&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What is the best way of calculating fatality and non fatality rates by surface type in SAS?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 23 Aug 2019 15:52:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583520#M166114</guid>
      <dc:creator>nbku222</dc:creator>
      <dc:date>2019-08-23T15:52:28Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating Injury Rates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583524#M166117</link>
      <description>I would recode Y/N to 1/0 and then do a proc means on the data set. The MEAN of a binary variable is the percentage or rate you want. &lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 23 Aug 2019 16:00:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583524#M166117</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-08-23T16:00:07Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating Injury Rates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583571#M166128</link>
      <description>&lt;P&gt;If you like a little Data Step programming then here is the way. Count the Ys and Ns by Surface. Then find Ys/(Ys +Ns) *100 as the Fatality ratio. Then Non Fatality Ratio is 100 - Fatality Ratio.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input race $6. ID @13 Fatality $1. Surface $;
datalines;
xxx001   1  Y  Dirt
xxx001   2  Y  Synth
xxx001   3  N  Dirt
xxx001   4  N  Dirt
xxx001   5  N  Synth
xxx001   6  N  Dirt
xxx001   7  Y  Synth
xxx001   8  Y  Synth
xxx002   9  Y  Synth
xxx002   10 Y  Dirt
xxx002   11 N  Turf
xxx002   12 N  Dirt
xxx002   13 N  Dirt
xxx002   14 N  Dirt
xxx002   15 Y  Turf
xxx002   16 Y  Turf
xxx003   17 N  Synth
xxx003   18 N  Dirt
xxx003   19 N  Dirt
xxx003   20 N  Dirt
xxx003   21 Y  Dirt
xxx003   22 Y  Dirt
xxx003   23 N  Dirt
;
run;

data want;
   set have end = eof;
   surf = 'Dirt Synth Turf';
   array Y[3] _temporary_;
   array N[3] _temporary_;
   i = findw(surf, trim(Surface), ' ', 'E');
   if Fatality = 'Y' then Y[i] + 1;
   else N[i] + 1;
   
   if eof then do i = 1 to 3;
      Surface = scan(surf, i);

      FatalityRatio = Y[i] * 100 / (Y[i] + N[i]);
      output;
   end;
   keep Surface FatalityRatio;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The output is:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Obs 	Surface 	FatalityRatio
1 	Dirt 	28.5714
2 	Synth 	66.6667
3 	Turf 	66.6667&lt;/PRE&gt;</description>
      <pubDate>Fri, 23 Aug 2019 17:52:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583571#M166128</guid>
      <dc:creator>KachiM</dc:creator>
      <dc:date>2019-08-23T17:52:46Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating Injury Rates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583587#M166135</link>
      <description>&lt;P&gt;Thank you that worked perfectly. How do I do it by year if also have time variable?&lt;/P&gt;</description>
      <pubDate>Fri, 23 Aug 2019 19:11:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583587#M166135</guid>
      <dc:creator>nbku222</dc:creator>
      <dc:date>2019-08-23T19:11:18Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating Injury Rates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583591#M166137</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input race $6. ID @13 Fatality $1. Surface $;
datalines;
xxx001   1  Y  Dirt
xxx001   2  Y  Synth
xxx001   3  N  Dirt
xxx001   4  N  Dirt
xxx001   5  N  Synth
xxx001   6  N  Dirt
xxx001   7  Y  Synth
xxx001   8  Y  Synth
xxx002   9  Y  Synth
xxx002   10 Y  Dirt
xxx002   11 N  Turf
xxx002   12 N  Dirt
xxx002   13 N  Dirt
xxx002   14 N  Dirt
xxx002   15 Y  Turf
xxx002   16 Y  Turf
xxx003   17 N  Synth
xxx003   18 N  Dirt
xxx003   19 N  Dirt
xxx003   20 N  Dirt
xxx003   21 Y  Dirt
xxx003   22 Y  Dirt
xxx003   23 N  Dirt
;
run;

proc sql;
create table want as
select surface, sum(fatality='Y')/n(surface) as Fatality_ratio /*if you want-&amp;gt;format=percent5.2*/
from have
group by surface;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza&lt;/a&gt;&amp;nbsp;'s words have demonstrated&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 23 Aug 2019 19:28:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583591#M166137</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-08-23T19:28:45Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating Injury Rates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583597#M166141</link>
      <description>&lt;P&gt;Datastep isn't convenient for a column operation that SQL/MEANS/SUMMARY offers in parallel that can be coded at ease, nonetheless fun stuff&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input race $6. ID @13 Fatality $1. Surface $;
datalines;
xxx001   1  Y  Dirt
xxx001   2  Y  Synth
xxx001   3  N  Dirt
xxx001   4  N  Dirt
xxx001   5  N  Synth
xxx001   6  N  Dirt
xxx001   7  Y  Synth
xxx001   8  Y  Synth
xxx002   9  Y  Synth
xxx002   10 Y  Dirt
xxx002   11 N  Turf
xxx002   12 N  Dirt
xxx002   13 N  Dirt
xxx002   14 N  Dirt
xxx002   15 Y  Turf
xxx002   16 Y  Turf
xxx003   17 N  Synth
xxx003   18 N  Dirt
xxx003   19 N  Dirt
xxx003   20 N  Dirt
xxx003   21 Y  Dirt
xxx003   22 Y  Dirt
xxx003   23 N  Dirt
;
run;
data want; 
if _n_=1 then do;
   dcl hash H () ;
   h.definekey  ("surface") ;
   h.definedata ("surface","_N","_count") ;
   h.definedone () ;
   dcl hiter hi('h');
end;
do until(z);
 set have end=z;
 if h.find() ne 0 then do;
 _N=1;_count=0;
 end;
 else _n=sum(_n,1);
 _count=sum(_count,Fatality='Y');
 h.replace();
end;
do while(hi.next()=0);
 Fatality_ratio=_count/_n;
 output;
end;
keep Surface Fatality_ratio;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 23 Aug 2019 20:11:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583597#M166141</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-08-23T20:11:52Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating Injury Rates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583616#M166150</link>
      <description>&lt;P&gt;SORT and DOW&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input race $6. ID @13 Fatality $1. Surface $;
datalines;
xxx001   1  Y  Dirt
xxx001   2  Y  Synth
xxx001   3  N  Dirt
xxx001   4  N  Dirt
xxx001   5  N  Synth
xxx001   6  N  Dirt
xxx001   7  Y  Synth
xxx001   8  Y  Synth
xxx002   9  Y  Synth
xxx002   10 Y  Dirt
xxx002   11 N  Turf
xxx002   12 N  Dirt
xxx002   13 N  Dirt
xxx002   14 N  Dirt
xxx002   15 Y  Turf
xxx002   16 Y  Turf
xxx003   17 N  Synth
xxx003   18 N  Dirt
xxx003   19 N  Dirt
xxx003   20 N  Dirt
xxx003   21 Y  Dirt
xxx003   22 Y  Dirt
xxx003   23 N  Dirt
;
run;

proc sort data=have;
by Surface ;
run;

data want;
 do _n_=1 by 1 until(last.surface);
 set have;
 by surface;
 _c=sum(_c,fatality='Y');
 end;
 Fatality_ratio=_c/_n_;
 keep surface Fatality_ratio;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 23 Aug 2019 21:29:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583616#M166150</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-08-23T21:29:11Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating Injury Rates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583647#M166163</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/276697"&gt;@nbku222&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I was sleeping when you inquired on 'year and time'.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I don't understand the input data set for this situation. Please place your question with a new subject line so that a new thread is created which will be current.&lt;/P&gt;</description>
      <pubDate>Sat, 24 Aug 2019 10:46:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculating-Injury-Rates/m-p/583647#M166163</guid>
      <dc:creator>KachiM</dc:creator>
      <dc:date>2019-08-24T10:46:49Z</dc:date>
    </item>
  </channel>
</rss>

