<?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: number missing values in each obs (Numeric) in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959605#M374386</link>
    <description>&lt;P&gt;Thank you so much.&lt;/P&gt;
&lt;P&gt;I just want to understand.&lt;/P&gt;
&lt;P&gt;In the data set there are 3 numeric vars (before adding the new Var).&lt;/P&gt;
&lt;P&gt;In obs=1&amp;nbsp; there is one missing value.&lt;/P&gt;
&lt;P&gt;In this code:&amp;nbsp; as I understand check missing values in 3 Vars. (But you say that it also check missing in the new VAR??)&lt;/P&gt;
&lt;P&gt;And why the new var is also missing?&amp;nbsp;&lt;/P&gt;
&lt;PRE class="language-sas"&gt;&lt;CODE&gt;nr_Numeric_Missing_Values=nmiss(of _numeric_);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 19 Feb 2025 14:40:07 GMT</pubDate>
    <dc:creator>Ronein</dc:creator>
    <dc:date>2025-02-19T14:40:07Z</dc:date>
    <item>
      <title>number missing values in each obs (Numeric)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959592#M374378</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;
&lt;P&gt;I want to calculate number of missing numeric values for each row.&lt;/P&gt;
&lt;P&gt;Obs 1 has one missing value.&lt;/P&gt;
&lt;P&gt;Why the result get 2 missing values???&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data my_data;
input team $ points assists rebounds;
cards;
A 10 2 .
A 17 5 .
A 17 . .
A 18 3 4
A 15 0 5
B . 4 5
B 29 0 8
B . 2 9
C 12 1 9
. 30 1 .
;
run;


data want;
set my_data;
nr_Numeric_Missing_Values=nmiss(of _numeric_);
Run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 19 Feb 2025 12:26:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959592#M374378</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2025-02-19T12:26:56Z</dc:date>
    </item>
    <item>
      <title>Re: number missing values in each obs (Numeric)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959593#M374379</link>
      <description>&lt;P&gt;Because&amp;nbsp;nr_Numeric_Missing_Values itself is initialized as a numeric variable. Therefore, it is captured by the _NUMERIC_ list. The calculation of the number of missing values in the NMISS Function occurs before the value is assigned to the variable. Therefore, you get a result +1 of what you expect in each observation.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This gives you the result you want&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data my_data;
input team $ points assists rebounds;
cards;
A 10 2 . 
A 17 5 . 
A 17 . . 
A 18 3 4 
A 15 0 5 
B . 4 5  
B 29 0 8 
B . 2 9  
C 12 1 9 
. 30 1 . 
;
run;

data want;
   set my_data;
   nr_Numeric_Missing_Values = nmiss(points, assists, rebounds);
Run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 19 Feb 2025 12:46:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959593#M374379</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2025-02-19T12:46:16Z</dc:date>
    </item>
    <item>
      <title>Re: number missing values in each obs (Numeric)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959595#M374380</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159549"&gt;@Ronein&lt;/a&gt;&amp;nbsp;That's a hidden gem... Below four methods how you can get around this.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  set my_data;
  length nr_Numeric_Missing_Values_1 $2;
  nr_Numeric_Missing_Values_1=put(nmiss(of _numeric_),f2. -l);
  
  nr_Numeric_Missing_Values_2=-1;
  nr_Numeric_Missing_Values_2=nmiss(of _numeric_);
  
  _n_=nmiss(of _numeric_);
  nr_Numeric_Missing_Values_3=_n_;
  
  array t_var{1} _temporary_;
  t_var[1]=nmiss(of _numeric_);
  nr_Numeric_Missing_Values_4=t_var[1];
  
Run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Feb 2025 13:21:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959595#M374380</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2025-02-19T13:21:06Z</dc:date>
    </item>
    <item>
      <title>Re: number missing values in each obs (Numeric)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959599#M374382</link>
      <description>&lt;P&gt;Because the _NUMERIC_ variable list also includes your new variable which is missing.&lt;/P&gt;
&lt;P&gt;Simplest solution is to jus subtract one.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;nr_Numeric_Missing_Values=nmiss(of _numeric_)-1;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If you are worried that NR_NUMERIC_MISSING_VALUES (who uses names like that??) might already exist on the input dataset and have a non missing value then add another statement to set it missing first.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;nr_Numeric_Missing_Values=.;
nr_Numeric_Missing_Values=nmiss(of _numeric_)-1;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 19 Feb 2025 13:47:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959599#M374382</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-02-19T13:47:25Z</dc:date>
    </item>
    <item>
      <title>Re: number missing values in each obs (Numeric)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959605#M374386</link>
      <description>&lt;P&gt;Thank you so much.&lt;/P&gt;
&lt;P&gt;I just want to understand.&lt;/P&gt;
&lt;P&gt;In the data set there are 3 numeric vars (before adding the new Var).&lt;/P&gt;
&lt;P&gt;In obs=1&amp;nbsp; there is one missing value.&lt;/P&gt;
&lt;P&gt;In this code:&amp;nbsp; as I understand check missing values in 3 Vars. (But you say that it also check missing in the new VAR??)&lt;/P&gt;
&lt;P&gt;And why the new var is also missing?&amp;nbsp;&lt;/P&gt;
&lt;PRE class="language-sas"&gt;&lt;CODE&gt;nr_Numeric_Missing_Values=nmiss(of _numeric_);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Feb 2025 14:40:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959605#M374386</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2025-02-19T14:40:07Z</dc:date>
    </item>
    <item>
      <title>Re: number missing values in each obs (Numeric)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959611#M374389</link>
      <description>&lt;P&gt;Just consider the order of operations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When you start an iteration of the data step any NEW variables are set to missing (unless you mentioned them in a RETAIN statement).&amp;nbsp; So your new variable is missing.&amp;nbsp; When the function call runs the value is still missing.&amp;nbsp; Only after the assignment statement has run is the value no longer missing.&lt;/P&gt;</description>
      <pubDate>Wed, 19 Feb 2025 15:09:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959611#M374389</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-02-19T15:09:57Z</dc:date>
    </item>
    <item>
      <title>Re: number missing values in each obs (Numeric)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959612#M374390</link>
      <description>&lt;P&gt;other option could be setting that "nr_Numeric..." variable to "ever not missing":&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set my_data;
nr_Numeric_Missing_Values=nmiss(of _numeric_);
retain nr_Numeric_Missing_Values 0;
Run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Bart&lt;/P&gt;</description>
      <pubDate>Wed, 19 Feb 2025 15:15:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959612#M374390</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2025-02-19T15:15:01Z</dc:date>
    </item>
    <item>
      <title>Re: number missing values in each obs (Numeric)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959613#M374391</link>
      <description>&lt;P&gt;Other possible approach with arrays:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set my_data;
array numeric[*] _numeric_;
nr_Numeric_Missing_Values=nmiss(of numeric[*]);
Run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Bart&lt;/P&gt;</description>
      <pubDate>Wed, 19 Feb 2025 15:17:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959613#M374391</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2025-02-19T15:17:55Z</dc:date>
    </item>
    <item>
      <title>Re: number missing values in each obs (Numeric)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959766#M374435</link>
      <description>&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Is location of RETAIN important? can it be above SET or below SET?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 20 Feb 2025 11:07:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959766#M374435</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2025-02-20T11:07:08Z</dc:date>
    </item>
    <item>
      <title>Re: number missing values in each obs (Numeric)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959786#M374445</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159549"&gt;@Ronein&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Is location of RETAIN important? can it be above SET or below SET?&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The RETAIN statement is not executable, it just has impact on how the data step is compiled, so where it is placed has no effect on the performance.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But SAS defines the order of the variables as the compile "sees" them.&amp;nbsp; So placing the RETAIN statement before the SET will make the variables mentioned in it appear before the variables read from the input dataset.&amp;nbsp; &amp;nbsp;Some people like to use this side effect of the RETAIN statement to re-order variables.&lt;/P&gt;</description>
      <pubDate>Thu, 20 Feb 2025 14:02:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/number-missing-values-in-each-obs-Numeric/m-p/959786#M374445</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-02-20T14:02:17Z</dc:date>
    </item>
  </channel>
</rss>

