DATA Step, Macro, Functions and more

Proc Import csv but need to delete last line

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 19
Accepted Solution

Proc Import csv but need to delete last line

Have a script that works great

 

proc import 
   datafile="c:\temp\input.csv"
   replace
   /*
   out command below only keeps what var columns you need for data - missing vars
   represent empty columns 
   */
   out = data_read (keep = var1 var2 var4 var5 var11 var12)
   dbms=csv
   out=t2
   ;
   guessingrows=32767
   ;
   *getnames=yes - pulls the header names, only use if csv has headers 
   namerow will also tell you what line to get the names if necessary;
   getnames=no
   ;
   *Firstobs=9;
   *datarow tells you what line to start;
   datarow=9
   ;
   DELIMITER=' '
   ;
run ;
proc contents ;
run ;
proc print ;
run ;
proc export
   data=t2
   outfile="C:\temp\output.csv"
   dbms=csv
   replace
;
run ;

The problem is that the the input.csv file now contains the following statement

 

 " Elapsed: 00:14:43.61," at the end of the file

 

So I am looking for way to delete the last line or find a way to delete rows that beging with "elapsed"


Accepted Solutions
Solution
‎05-12-2017 09:31 AM
PROC Star
Posts: 7,467

Re: Proc Import csv but need to delete last line

Posted in reply to hondahawkrider

Here is one possible solution: replace the first two lines of your script:

proc import 
   datafile="c:\temp\input.csv"

with

filename FT16F001 temp; 
data _null_; 
  infile "c:\temp\input.csv";
  file FT16F001;
  input; 
  if _infile_ eq: 'Elapsed' then stop; 
  put _infile_; 
run;
proc import datafile=FT16F001

Art, CEO, AnalystFinder.com

 

View solution in original post


All Replies
Solution
‎05-12-2017 09:31 AM
PROC Star
Posts: 7,467

Re: Proc Import csv but need to delete last line

Posted in reply to hondahawkrider

Here is one possible solution: replace the first two lines of your script:

proc import 
   datafile="c:\temp\input.csv"

with

filename FT16F001 temp; 
data _null_; 
  infile "c:\temp\input.csv";
  file FT16F001;
  input; 
  if _infile_ eq: 'Elapsed' then stop; 
  put _infile_; 
run;
proc import datafile=FT16F001

Art, CEO, AnalystFinder.com

 

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 147 views
  • 1 like
  • 2 in conversation