<?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: Saving missing data patterns in Statistical Procedures</title>
    <link>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/571378#M28110</link>
    <description>&lt;P&gt;I'm pretty sure the answer is "yes" to all your questions, although I have not done it and have no code to contribute.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I suggest you attempt to program a solution to these questions on a small data set such as Sashelp.Heart that we all can access. If you run into problems, open a new thread and show us your initial attempts.&lt;/P&gt;</description>
    <pubDate>Fri, 05 Jul 2019 13:13:25 GMT</pubDate>
    <dc:creator>Rick_SAS</dc:creator>
    <dc:date>2019-07-05T13:13:25Z</dc:date>
    <item>
      <title>Saving missing data patterns</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/566621#M27915</link>
      <description>&lt;P&gt;Hi Everyone,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to save my missing data patterns as a variable (i.e. if there are 20 patterns, saving the pattern number as an additional variable).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Current my code is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ods select misspatterns;&lt;/P&gt;&lt;P&gt;proc mi data=workdata nimpute=0;&lt;/P&gt;&lt;P&gt;var x y z;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there something I can add to save the pattern # as a variable?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance!&amp;nbsp;&lt;/P&gt;&lt;P&gt;Jillian halladje@mcmaster.ca&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 17 Jun 2019 15:29:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/566621#M27915</guid>
      <dc:creator>halladje</dc:creator>
      <dc:date>2019-06-17T15:29:33Z</dc:date>
    </item>
    <item>
      <title>Re: Saving missing data patterns</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/566650#M27917</link>
      <description>&lt;P&gt;&lt;SPAN&gt;What do you mean by "saving the pattern number as an additional variable"? Do you want to create a new variable from the existing pattern matrix?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can &lt;A href="https://blogs.sas.com/content/iml/2017/01/09/ods-output-any-statistic.html" target="_self"&gt;use the ODS OUTPUT statement to save any SAS table:&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ods output MissPattern=Pattern;&lt;BR /&gt;proc mi data=Sashelp.Heart nimpute=0 displaypattern=nomeans;&lt;BR /&gt;var AgeAtStart Height Weight Diastolic &lt;BR /&gt;Systolic MRW Smoking Cholesterol;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc print data=Pattern;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you want to create a new variable from those columns, specify what you are looking for.&lt;/P&gt;</description>
      <pubDate>Mon, 17 Jun 2019 17:27:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/566650#M27917</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2019-06-17T17:27:49Z</dc:date>
    </item>
    <item>
      <title>Re: Saving missing data patterns</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/566653#M27918</link>
      <description>&lt;P&gt;Add&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;ods output MissPattern=MyMissPattern;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;to your code which will save the "Missing Data Patterns" table to a SAS dataset named &lt;EM&gt;MyMissPattern&lt;/EM&gt;. The &lt;EM&gt;group&lt;/EM&gt; variable in this dataset is what you want.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edit: Oops, Rick beat me to the answer &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 17 Jun 2019 17:33:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/566653#M27918</guid>
      <dc:creator>sld</dc:creator>
      <dc:date>2019-06-17T17:33:56Z</dc:date>
    </item>
    <item>
      <title>Re: Saving missing data patterns</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/566660#M27919</link>
      <description>Hi Rick,&lt;BR /&gt;&lt;BR /&gt;Thanks so much for providing this code! This worked. I am hoping to add the "group" variable now in "pattern" to my main dataset. Any ideas? Thanks</description>
      <pubDate>Mon, 17 Jun 2019 18:01:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/566660#M27919</guid>
      <dc:creator>halladje</dc:creator>
      <dc:date>2019-06-17T18:01:58Z</dc:date>
    </item>
    <item>
      <title>Re: Saving missing data patterns</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/566663#M27920</link>
      <description>&lt;P&gt;If your goal is to ultimately assign each observation to its respective missing data pattern then t&lt;SPAN class="cs53F207AF"&gt;he easiest way I can think of to do this is to use Proc IML in conjunction with the missing data pattern ODS table. &amp;nbsp;Below is what I have in mind.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="cs53F207AF"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csE0EE740F"&gt;data&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Fitness1;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;input&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Oxygen RunTime RunPulse @@;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;datalines&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;44.609 &amp;nbsp;11.37 &amp;nbsp;178 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;45.313 &amp;nbsp;10.07 &amp;nbsp;185&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;54.297 &amp;nbsp;&amp;nbsp;8.65 &amp;nbsp;156 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;59.571 &amp;nbsp;&amp;nbsp;&amp;nbsp;. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;49.874 &amp;nbsp;&amp;nbsp;9.22 &amp;nbsp;&amp;nbsp;&amp;nbsp;. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;44.811 &amp;nbsp;11.63 &amp;nbsp;176&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;&amp;nbsp; . &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;11.95 &amp;nbsp;176 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;. &amp;nbsp;10.85 &amp;nbsp;&amp;nbsp;&amp;nbsp;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;39.442 &amp;nbsp;13.08 &amp;nbsp;174 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;60.055 &amp;nbsp;&amp;nbsp;8.63 &amp;nbsp;170&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;50.541 &amp;nbsp;&amp;nbsp;&amp;nbsp;. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;37.388 &amp;nbsp;14.03 &amp;nbsp;186&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;44.754 &amp;nbsp;11.12 &amp;nbsp;176 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;47.273 &amp;nbsp;&amp;nbsp;&amp;nbsp;. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;51.855 &amp;nbsp;10.33 &amp;nbsp;166 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;49.156 &amp;nbsp;&amp;nbsp;8.95 &amp;nbsp;180&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;40.836 &amp;nbsp;10.95 &amp;nbsp;168 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;46.672 &amp;nbsp;10.00 &amp;nbsp;&amp;nbsp;&amp;nbsp;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;46.774 &amp;nbsp;10.25 &amp;nbsp;&amp;nbsp;&amp;nbsp;. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;50.388 &amp;nbsp;10.08 &amp;nbsp;168&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;39.407 &amp;nbsp;12.63 &amp;nbsp;174 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;46.080 &amp;nbsp;11.17 &amp;nbsp;156&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;45.441 &amp;nbsp;&amp;nbsp;9.63 &amp;nbsp;164 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8.92 &amp;nbsp;&amp;nbsp;&amp;nbsp;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;45.118 &amp;nbsp;11.08 &amp;nbsp;&amp;nbsp;&amp;nbsp;. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;39.203 &amp;nbsp;12.88 &amp;nbsp;168&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;45.790 &amp;nbsp;10.47 &amp;nbsp;186 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;50.545 &amp;nbsp;&amp;nbsp;9.93 &amp;nbsp;148&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;48.673 &amp;nbsp;&amp;nbsp;9.40 &amp;nbsp;186 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;47.920 &amp;nbsp;11.50 &amp;nbsp;170&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csECD9B3DF"&gt;47.467 &amp;nbsp;10.50 &amp;nbsp;170&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csE0EE740F"&gt;proc&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csE0EE740F"&gt;mi&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;data&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;=Fitness1&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;seed&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;=&lt;/SPAN&gt;&lt;SPAN class="cs6858504D"&gt;1518971&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;simple&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;nimpute&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;=&lt;/SPAN&gt;&lt;SPAN class="cs6858504D"&gt;0&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;var&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Oxygen RunTime RunPulse;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;ods&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;output&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;MissPattern=mdpattern;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csE0EE740F"&gt;run&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csE0EE740F"&gt;proc&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csE0EE740F"&gt;iml&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="cs4487CA72"&gt;/*Read in original data set*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csD28C4F3F"&gt;use&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;fitness1;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csD28C4F3F"&gt;read&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;all&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;var&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;{Oxygen RunTime RunPulse}&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;into&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;dat[&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;colname&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;=cname];&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="cs4487CA72"&gt;/*Generate the observation level missing data pattern*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;misspattern=missing(dat);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="cs4487CA72"&gt;/*Read in the Summarized form from Proc MI*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csD28C4F3F"&gt;use&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;mdpattern;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csD28C4F3F"&gt;read&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;all&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;var&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;{Oxygen_miss RunTime_miss RunPulse_miss}&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;into&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;sumpattern;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="cs4487CA72"&gt;/*Read in the group number*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csD28C4F3F"&gt;read&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;all&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;var&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;{group}&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;into&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;grp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="cs4487CA72"&gt;/*Reformat the MI data set so that it has 0s and 1s instead of Xs and .s to make the comparison easier*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;sumpattern=(sumpattern=&lt;/SPAN&gt;&lt;SPAN class="csAF1817D"&gt;'.'&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="cs4487CA72"&gt;/*Compare each of the rows to the patterns*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;x=j(nrow(dat),&lt;/SPAN&gt;&lt;SPAN class="cs6858504D"&gt;1&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;,&lt;/SPAN&gt;&lt;SPAN class="cs6858504D"&gt;.&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csD28C4F3F"&gt;do&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;j=&lt;/SPAN&gt;&lt;SPAN class="cs6858504D"&gt;1&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;to&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;nrow(dat);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csD28C4F3F"&gt;do&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;i=&lt;/SPAN&gt;&lt;SPAN class="cs6858504D"&gt;1&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;to&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;nrow(sumpattern);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csD28C4F3F"&gt;if&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;misspattern[j,]=sumpattern[i,]&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;then&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;x[j]=grp[i];&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csD28C4F3F"&gt;end&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csD28C4F3F"&gt;end&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="cs4487CA72"&gt;/*Save the pattern as a variable in the original data set*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;datx=dat||x;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csD28C4F3F"&gt;create&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;fitness2&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;from&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;datx [colname= (cname||&lt;/SPAN&gt;&lt;SPAN class="csAF1817D"&gt;'patnum'&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;)];&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csD28C4F3F"&gt;append&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;from&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;datx;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csE0EE740F"&gt;quit&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csAB6422E4"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csE0EE740F"&gt;proc&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csE0EE740F"&gt;print&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="csD28C4F3F"&gt;data&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;=fitness2;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="cs95E872D0"&gt;&lt;SPAN class="csE0EE740F"&gt;run&lt;/SPAN&gt;&lt;SPAN class="csAB6422E4"&gt;;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 17 Jun 2019 18:05:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/566663#M27920</guid>
      <dc:creator>SAS_Rob</dc:creator>
      <dc:date>2019-06-17T18:05:51Z</dc:date>
    </item>
    <item>
      <title>Re: Saving missing data patterns</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/566670#M27921</link>
      <description>&lt;P&gt;You could detect the patterns and add the 'group' variable, but I think a better way if to just encode the missing value patterns directly by using a string variable that contains a binary sequence. The i_th character of the string will be '1' if the i_th variable has a missing value; otherwise, the i_th character is '0'. Then PROC FREQ gives the same summary of the missing value patterns as PROC MI, except the group values are meaningful.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let vars = AgeAtStart Height Weight Diastolic 
           Systolic MRW Smoking Cholesterol;

data CodeMissing;  /* or make a view with  / view=CodeMissing; */
set Sashelp.Heart;
array V[*] &amp;amp;vars;
MissInd = subpad('0', 1, dim(V));
do i = 1 to dim(V);
   substr(MissInd, i, 1) = put(cmiss(V[i]), 1.); /* indicate missing */
   /* or use ^cmiss(V[i]) iF you want to indicate nonmissing values */
end;
run;

proc freq data=CodeMissing;
   tables MissInd;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 17 Jun 2019 18:22:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/566670#M27921</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2019-06-17T18:22:41Z</dc:date>
    </item>
    <item>
      <title>Re: Saving missing data patterns</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/567195#M27928</link>
      <description>&lt;P&gt;It turns out that &lt;A href="https://blogs.sas.com/content/iml/2017/11/29/visualize-patterns-missing-values.html" target="_self"&gt;I wrote a blog on the topic of creating a string that encapsulates the missing value pattern back in 2017.&lt;/A&gt; See the section "Shorten the labels for the missing data patterns."&lt;/P&gt;</description>
      <pubDate>Wed, 19 Jun 2019 09:58:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/567195#M27928</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2019-06-19T09:58:07Z</dc:date>
    </item>
    <item>
      <title>Re: Saving missing data patterns</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/571369#M28109</link>
      <description>&lt;P&gt;Hi Rick,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This ended up working for me today! I am not sure what I have been doing wrong for the past bit, but I am happy it worked. I also reviewed your blog post which was also very helpful.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a lot of variables in my dataset - so even working on a smaller number of the variables than I plan to in the final analysis, I have 650 patterns. Most of these patterns only have 1 or 2 individuals with the particular pattern. Is there a way to graphically visualize the missing data patterns (from your blog post) but only for missing data patterns that have a minimum % of observations?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, given the string variables are very long due to the number of variables in the missing analysis, is there a way to save the "group" of missingness alongside the string of missing? Or is there a way to create a new variable based on the string to synthesize the patterns into "groups"?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My goal is to create propensity scores for the most common missing data patterns and then use this propensity to be missing to create a dataset with missing variables for simulations (where missingness is MAR, not MCAR and resembles the full dataset).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If it is helpful to connect via email my email is halladje@mcmaster.ca Thanks so much for all your help.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Jul 2019 12:58:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/571369#M28109</guid>
      <dc:creator>halladje</dc:creator>
      <dc:date>2019-07-05T12:58:52Z</dc:date>
    </item>
    <item>
      <title>Re: Saving missing data patterns</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/571378#M28110</link>
      <description>&lt;P&gt;I'm pretty sure the answer is "yes" to all your questions, although I have not done it and have no code to contribute.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I suggest you attempt to program a solution to these questions on a small data set such as Sashelp.Heart that we all can access. If you run into problems, open a new thread and show us your initial attempts.&lt;/P&gt;</description>
      <pubDate>Fri, 05 Jul 2019 13:13:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Saving-missing-data-patterns/m-p/571378#M28110</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2019-07-05T13:13:25Z</dc:date>
    </item>
  </channel>
</rss>

