<?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: Deleting empty rows in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/427884#M273572</link>
    <description>&lt;P&gt;In excel select rows 181-189.&amp;nbsp; Delete them.&amp;nbsp; Save the excel file.&amp;nbsp; Excel now thinks the end-of-sheet is row 180..&amp;nbsp; Re-import.&lt;/P&gt;</description>
    <pubDate>Mon, 15 Jan 2018 23:44:41 GMT</pubDate>
    <dc:creator>mkeintz</dc:creator>
    <dc:date>2018-01-15T23:44:41Z</dc:date>
    <item>
      <title>Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349622#M273561</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I am importing excel into SAS. The excle sheet has 181 rows (first row for variables' names) but I get 189 rows when importing to SAS, this means I have 8 empty rows (see below). I see that the Excel sheet goes to 189 (meaning it seems formatted this way). Here is the Code I am using:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PROC IMPORT OUT= WORK.dataset DATAFILE= "C:\proj.xlsx" &lt;BR /&gt; DBMS=xlsx REPLACE;&lt;BR /&gt; GETNAMES=YES;&lt;BR /&gt;RUN;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How can I tell SAS to import only the rows with valid observations?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SAS Output&lt;/P&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.DATASET" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;180&lt;/TH&gt;
&lt;TD class="r data"&gt;180&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;20&lt;/TD&gt;
&lt;TD class="r data"&gt;158&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;181&lt;/TH&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;182&lt;/TH&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;183&lt;/TH&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;184&lt;/TH&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;185&lt;/TH&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;186&lt;/TH&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;187&lt;/TH&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;188&lt;/TH&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;189&lt;/TH&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 12 Apr 2017 22:22:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349622#M273561</guid>
      <dc:creator>sas_user4</dc:creator>
      <dc:date>2017-04-12T22:22:31Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349628#M273562</link>
      <description>&lt;P&gt;Are all of the fields numeric, character or a mixture of both?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 12 Apr 2017 22:55:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349628#M273562</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-04-12T22:55:07Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349630#M273563</link>
      <description>&lt;P&gt;I'm not aware of a way to do it during import but, regardless of whether you have numeric variables, character variables, or a mixture of both, the following should work after you've imported the file:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data have;
  input a b $ c d $ e f $ g;
  cards;
1 2 3 4 5 6 6
1 . 3 4 5 6 7
1 2 . 4 5 6 7
. . . . . . .
. . . . . . .
. . . . . . .
;
data want;
  set have;
  if not (nmiss(of a--g) eq 7);
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 12 Apr 2017 23:03:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349630#M273563</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-04-12T23:03:01Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349632#M273564</link>
      <description>&lt;P&gt;Thank you. It is a misture of both.&lt;/P&gt;</description>
      <pubDate>Wed, 12 Apr 2017 23:06:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349632#M273564</guid>
      <dc:creator>sas_user4</dc:creator>
      <dc:date>2017-04-12T23:06:38Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349736#M273565</link>
      <description>&lt;PRE&gt;

if not (Cmiss(of a--g) eq 7);

&lt;/PRE&gt;</description>
      <pubDate>Thu, 13 Apr 2017 12:39:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349736#M273565</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-04-13T12:39:44Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349758#M273566</link>
      <description>&lt;P&gt;Thank you both for your replies. I am sorry, I am not familiar with these commands. Can you please modify them for the purpose of my code? What does&lt;/P&gt;
&lt;PRE&gt;if not (Cmiss(of a--g) eq 7);&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;Cmiss or Nmiss mean? and a--g or eq 7??&amp;nbsp; &lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2017 13:31:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349758#M273566</guid>
      <dc:creator>sas_user4</dc:creator>
      <dc:date>2017-04-13T13:31:41Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349760#M273567</link>
      <description>&lt;P&gt;CMISS() is for both numeric and characher variable,&lt;/P&gt;
&lt;P&gt;while NMISS() is only for numeric variable.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2017 13:34:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349760#M273567</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-04-13T13:34:46Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349762#M273568</link>
      <description>&lt;P&gt;The following code worked just fine:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data try;&lt;BR /&gt; set new;&lt;BR /&gt; if cmiss(of _all_) then delete;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2017 13:43:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349762#M273568</guid>
      <dc:creator>sas_user4</dc:creator>
      <dc:date>2017-04-13T13:43:48Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349764#M273569</link>
      <description>&lt;P&gt;I agree that cmiss would be more appropriate but, in this case, both cmiss and nmiss provide the same result.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2017 13:56:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349764#M273569</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-04-13T13:56:44Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349771#M273570</link>
      <description>&lt;P&gt;Be prepared if using Proc Import and Excel files that the exact same cause for you "blank" rows will also create "blank" variables. The issue here is that Excel will consider any row or column that had any value entered into any cell init, even if deleted, as "active". The engine that SAS talks to with Excel via Proc Import is told by Excel that the cells should have values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You will at some time likely get varaibles named VARxx with no data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2017 14:45:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/349771#M273570</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2017-04-13T14:45:42Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/427257#M273571</link>
      <description>&lt;P&gt;Simple and effective. I've now saved this in my codes folder. Thank you very much!&lt;/P&gt;</description>
      <pubDate>Fri, 12 Jan 2018 16:38:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/427257#M273571</guid>
      <dc:creator>ericdrosano</dc:creator>
      <dc:date>2018-01-12T16:38:18Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/427884#M273572</link>
      <description>&lt;P&gt;In excel select rows 181-189.&amp;nbsp; Delete them.&amp;nbsp; Save the excel file.&amp;nbsp; Excel now thinks the end-of-sheet is row 180..&amp;nbsp; Re-import.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jan 2018 23:44:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/427884#M273572</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2018-01-15T23:44:41Z</dc:date>
    </item>
    <item>
      <title>Re: Deleting empty rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/674907#M273573</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/58401"&gt;@sas_user4&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;The following code worked just fine:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data try;&lt;BR /&gt;set new;&lt;BR /&gt;if cmiss(of _all_) then delete;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks!&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The above code will delete a row if &lt;EM&gt;&lt;STRONG&gt;any&lt;/STRONG&gt; &lt;/EM&gt;of the values are blank. I thought you wanted to delete a row of &lt;EM&gt;&lt;STRONG&gt;all&lt;/STRONG&gt;&lt;/EM&gt; of the values are blank.&lt;/P&gt;</description>
      <pubDate>Thu, 06 Aug 2020 07:08:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Deleting-empty-rows/m-p/674907#M273573</guid>
      <dc:creator>Norman21</dc:creator>
      <dc:date>2020-08-06T07:08:40Z</dc:date>
    </item>
  </channel>
</rss>

