<?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 Delete row if all variables empty in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Delete-row-if-all-variables-empty/m-p/9906#M831</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi. I have a question that my knowledge of datasteps and arrays can't really handle.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have some data of the form:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Iden&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var4&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y&lt;/P&gt;&lt;P&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What i hope to make clear is that i have different variables, named anumabb2 to anumabb34, that contain non-numeric text. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What i wan't to delete is the row with iden 2, because all that exact one has all empty variable slots.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it makes sense, and i'm thinking it has a simple solution that im too high on coffee to find for myself!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;TM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 15 Sep 2011 13:15:38 GMT</pubDate>
    <dc:creator>TM</dc:creator>
    <dc:date>2011-09-15T13:15:38Z</dc:date>
    <item>
      <title>Delete row if all variables empty</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Delete-row-if-all-variables-empty/m-p/9906#M831</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi. I have a question that my knowledge of datasteps and arrays can't really handle.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have some data of the form:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Iden&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var4&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y&lt;/P&gt;&lt;P&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What i hope to make clear is that i have different variables, named anumabb2 to anumabb34, that contain non-numeric text. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What i wan't to delete is the row with iden 2, because all that exact one has all empty variable slots.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it makes sense, and i'm thinking it has a simple solution that im too high on coffee to find for myself!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;TM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Sep 2011 13:15:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Delete-row-if-all-variables-empty/m-p/9906#M831</guid>
      <dc:creator>TM</dc:creator>
      <dc:date>2011-09-15T13:15:38Z</dc:date>
    </item>
    <item>
      <title>Delete row if all variables empty</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Delete-row-if-all-variables-empty/m-p/9907#M832</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Tim,&amp;nbsp; How about something like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array cvars(*) var1--var4;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if not(cmiss(of cvars(*)) eq dim(cvars));&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Sep 2011 13:39:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Delete-row-if-all-variables-empty/m-p/9907#M832</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-09-15T13:39:45Z</dc:date>
    </item>
    <item>
      <title>Re: Delete row if all variables empty</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Delete-row-if-all-variables-empty/m-p/9908#M833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ... here's another idea.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-family: 'courier new', courier;"&gt;data new;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-family: 'courier new', courier;"&gt;set old;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-family: 'courier new', courier;"&gt;if ^missing(cats(of anumabb2-anumabb34));&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-family: 'courier new', courier;"&gt;run;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A generic approac to this question is shown below.&amp;nbsp; &lt;/P&gt;&lt;P&gt;The OPTIONS MISSING=' ' is needed if there are&lt;/P&gt;&lt;P&gt;any numeric variables in your data set since the CATS function will&amp;nbsp; add&lt;/P&gt;&lt;P&gt;a period to the concatenated string of values if the default value of&lt;/P&gt;&lt;P&gt;a period is used.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-family: 'courier new', courier;"&gt;options missing = ' ';&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-family: 'courier new', courier;"&gt;data new;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-family: 'courier new', courier;"&gt;set old;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-family: 'courier new', courier;"&gt;if ^missing(cats(of _all_));&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-family: 'courier new', courier;"&gt;run;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-family: 'courier new', courier;"&gt;options missing = '.';&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Sep 2011 14:40:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Delete-row-if-all-variables-empty/m-p/9908#M833</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2011-09-15T14:40:28Z</dc:date>
    </item>
    <item>
      <title>Re: Delete row if all variables empty</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Delete-row-if-all-variables-empty/m-p/9909#M834</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data INPUT;&lt;/P&gt;&lt;P&gt;iden=1;&lt;/P&gt;&lt;P&gt;var1='x';&lt;/P&gt;&lt;P&gt;var2='y';&lt;/P&gt;&lt;P&gt;var3='';&lt;/P&gt;&lt;P&gt;var4='';&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;iden=2;&lt;/P&gt;&lt;P&gt;var1='';&lt;/P&gt;&lt;P&gt;var2='';&lt;/P&gt;&lt;P&gt;var3='';&lt;/P&gt;&lt;P&gt;var4='';&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;iden=3;&lt;/P&gt;&lt;P&gt;var1='';&lt;/P&gt;&lt;P&gt;var2='';&lt;/P&gt;&lt;P&gt;var3='u';&lt;/P&gt;&lt;P&gt;var4='';&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;iden=4;&lt;/P&gt;&lt;P&gt;var1='';&lt;/P&gt;&lt;P&gt;var2='';&lt;/P&gt;&lt;P&gt;var3='x';&lt;/P&gt;&lt;P&gt;var4='z';&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;iden=1;&lt;/P&gt;&lt;P&gt;var1='';&lt;/P&gt;&lt;P&gt;var2='y';&lt;/P&gt;&lt;P&gt;var3='';&lt;/P&gt;&lt;P&gt;var4='';&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc sql;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;select COMPRESS(name)||" is not null" into :COND SEPARATED BY ' OR '&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;from sashelp.vcolumn &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;where memname='TEST' AND TYPE='char' &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND LIBNAME='WORK';&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;QUIT;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%PUT &amp;amp;COND.;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;DATA WANT;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SET INPUT;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;WHERE &amp;amp;COND.;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;RUN;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step 1: i'm selecting all the variables that are character as per the requirement into a macro variable . (Using dictionary)&lt;/P&gt;&lt;P&gt;Step 2: using the macro to be used as my where clause condition.&amp;nbsp; Though it looks like two steps, the first steps doesn't access data but dictionary, hence it&amp;nbsp; doesn't take time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;I'm using where clause instead of if to improve the performance.&amp;nbsp;&amp;nbsp; but it works.&amp;nbsp; &lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Sep 2011 18:52:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Delete-row-if-all-variables-empty/m-p/9909#M834</guid>
      <dc:creator>jonam</dc:creator>
      <dc:date>2011-09-15T18:52:32Z</dc:date>
    </item>
    <item>
      <title>Re: Delete row if all variables empty</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Delete-row-if-all-variables-empty/m-p/9910#M835</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Art has already given your answer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data temp;
infile datalines truncover;
input (Iden&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var4 ) ($) ;
datalines;
1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y
4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z
;
run;
%global nvar list;
proc sql noprint;
 select name ,count(name) 
&amp;nbsp;&amp;nbsp; into : list separated by ',', : nvar
&amp;nbsp; from dictionary.columns
&amp;nbsp;&amp;nbsp; where libname='WORK' and memname='TEMP' and name like 'Var%';
quit;
%put &amp;amp;nvar &amp;amp;list;

data temp;
 set temp;
 if cmiss(of &amp;amp;list) eq &amp;amp;nvar then delete;
run;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Sep 2011 03:06:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Delete-row-if-all-variables-empty/m-p/9910#M835</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-09-16T03:06:50Z</dc:date>
    </item>
  </channel>
</rss>

