Help using Base SAS procedures

import stmt; datalines work, but input file doesnt

Reply
Occasional Contributor
Posts: 5

import stmt; datalines work, but input file doesnt

I've started moving doing more of my own coding vs using enterprise guide and I have a puzzling issue.   I have the same input statement, that works just great with the input in a datalines, but when I try and use a and INFILE, sas complains about data format issues.   I'm running SAS 9.2 on AIX.  I am doing all my edits on the unix box so I doubt it's some sort of unix/dos formatting issue.   I'm a little puzzled.   If I read it all in as strings and convert it also seems to work fine, but that's more work when I have 500 or so fields.

This works fine:

OPTIONS DATESTYLE=MDY;

data &TEMP_DS;

  format timeStamp dateampm22. ;

  input tdate mmddyy11. hourStamp adjCount comma8.;

  timeStamp=dhms(tdate,hourStamp,30,0);

  keep timeStamp hourStamp adjCount;

label

        timeStamp = "TimeStamp"

        adjCount = "Adjucation Count"

;

datalines;

01/01/2010 3   321

01/01/2010  4  335

01/01/2010  5  376

01/01/2010  6  383

01/01/2010  7  385

;

But when this same data is in a file and try to use:

INFILE "/user_data/adjdata.txt"

                MISSOVER

                DSD

;

I get:

NOTE: Invalid data for hourStamp in line 1 12-19.

RULE:     ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0                   

1         01/01/2010  3   321 19

timeStamp=. dateStamp=. tdate=18263 hourStamp=. adjCount=. _ERROR_=1 _N_=1

Frequent Contributor
Posts: 97

Re: import stmt; datalines work, but input file doesnt

hi ,

use truncover and pad ...in the follwing step..??

INFILE "/user_data/adjdata.txt"

                truncover

                DSD;

input tdate mmddyy11. @13  hourStamp @16 adjCount comma8.;

Occasional Contributor
Posts: 5

Re: import stmt; datalines work, but input file doesnt

That doesn't seem to help.   I still get the same error.

NOTE: Invalid data for hourStamp in line 1 12-19.

RULE: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

1         01/01/2010  3   321 19

timeStamp=. dateStamp=. tdate=18263 hourStamp=. adjCount=. _ERROR_=1 _N_=1

What does "Invalid data" mean, is there any more detail somewhere?

Frequent Contributor
Posts: 97

Re: import stmt; datalines work, but input file doesnt

hi,

when you are pasting the data from 'datalines ' in to txt file .....some wrong  alligment for the  'tdate' and 'hourstamp'...is happening .. while importing it will give wrong...allingment...please check this

or

eg : please delete the first row of your data and check...

i have not observed any errors with following code ..

Note : i have adjusted the alligment of first row !!

data TEMP_DS;
infile "C:\Users\galax_allu\Desktop\adjdata.txt" truncover pad;
OPTIONS DATESTYLE=MDY;
  format timeStamp dateampm22. ;
   input tdate mmddyy11. hourStamp adjCount comma8.;

  timeStamp=dhms(tdate,hourStamp,30,0);

  keep timeStamp hourStamp adjCount;

label

        timeStamp = "TimeStamp"

        adjCount = "Adjucation Count"

;

run;

Regards

Allu

..

Super User
Super User
Posts: 6,495

Re: import stmt; datalines work, but input file doesnt

PAD is redundant if you are using TRUNCOVER.

Frequent Contributor
Posts: 97

Re: import stmt; datalines work, but input file doesnt

thanks Tom..

Super User
Super User
Posts: 6,495

Re: import stmt; datalines work, but input file doesnt

Why are you using DSD option?  That will make it attempt to read the lines as if the fields were separated with commas.  So you read the first 11 columns because of the explicit informat length. So then it reads the rest of the line (columns 12 to 19 in this case) as one field and the embedded space makes it an invalid number.

Also do not use MISSOVER as that will set values to missing when only part of it is available on the same line. Use the TRUNCOVER option instead so when you attempt to read past the end of the line if keeps the values that are there.

Ask a Question
Discussion stats
  • 6 replies
  • 240 views
  • 0 likes
  • 3 in conversation