BookmarkSubscribeRSS Feed
Thomaz
Calcite | Level 5

I am having a hard time reading external data from a .TXT file. I used to do that easily using other SAS versions.

 

The program is shown below:

 

filename YaraCASA '/folders/myfolders/YaraCASA.txt' lrecl=2000;

data YaraCASA;

infile YaraCASA missover;

input COLETA HORA TRATAM MACHO MOTTOT MOTPROG DAP DCL DSL VAP VCL VSL STR LIN WOB ALH BCF TRDSL TRVSL TRWOB LOGLIN;

 

PROC GLM;

 CLASS COLETA TRATAM HORA MACHO;

 MODEL MOTTOT = TRATAM MACHO(TRATAM) HORA COLETA COLETA*TRATAM HORA*TRATAM;

 RANDOM MACHO(TRATAM) / TEST;

 LSMEANS TRATAM HORA*TRATAM / STDERR PDIFF;

RUN;

 

The error message I get follows next:

 

 

 1          OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;

 55        

 56         filename YaraCASA '/folders/myfolders/YaraCASA.txt' lrecl=2000;

 57         data YaraCASA;

 58         infile YaraCASA missover;

 59         input COLETA HORA TRATAM MACHO MOTTOT MOTPROG DAP DCL DSL VAP VCL VSL STR LIN WOB ALH BCF TRDSL TRVSL TRWOB LOGLIN;

 60        

 

 NOTE: The infile YARACASA is:

       Filename=/folders/myfolders/YaraCASA.txt,

       Owner Name=sasdemo,Group Name=sas,

       Access Permission=-rw-rw-r--,

       Last Modified=10 de dezembro de 2015 14h24min40s,

       File Size (bytes)=30467

 

 NOTE: Invalid data for COLETA in line 1 1-102.

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

 

8 REPLIES 8
Reeza
Super User
Your code looks correct, it looks like an issue with your input statement. Have you tried a standard proc import to see what it generates?
ballardw
Super User

Without the complete error message  I am guessing that you have text data in a variable that should be numeric from the datastep code that you posted.

 

If the text appears to be a column heading you might just need to add firstobs=2 to the infile statement.

If the source of the data has changed the content then you may have to have a discussion about the field type with the provider.

 

Thomaz
Calcite | Level 5

I tried inserting the firstobs=2 in trhe infile statement. I did not help much. A more complete error message is below. Any help on that would be deeply appreciated.

NOTE: The infile YARACASA is:

       Filename=/folders/myfolders/YaraCASA.txt,

       Owner Name=sasdemo,Group Name=sas,

       Access Permission=-rw-rw-r--,

       File Size (bytes)=30467

 

 NOTE: Invalid data for COLETA in line 2 1-103.

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

 

 2   CHAR  1.0.1.82.56.73.36.99.21.50.43.42.15.94.45.00.90.91.33.38.0.73.0.36.0.49.2.56.33.24.0.13.0.18.0.02.-0

     ZONE  3030303303323303323303323303323303323303323303323303323303233032330323303233033233032330323303233023

     NUMR  19091982956E73936E99921E50943E42915E94945E00990E91933E3890E7390E3690E4992E56933E2490E1390E1890E029D0

      101  .44 103

 COLETA=. HORA=. TRATAM=. MACHO=. MOTTOT=. MOTPROG=. DAP=. DCL=. DSL=. VAP=. VCL=. VSL=. STR=. LIN=. WOB=. ALH=. BCF=. TRDSL=.

 TRVSL=. TRWOB=. LOGLIN=. _ERROR_=1 _N_=1

 NOTE: Invalid data for COLETA in line 3 1-104

Reeza
Super User
It looks like you might have a period/decimal as your delimiter. Try adding dlm='.' To your infile statement. You may also want to change missover to truncover.
Thomaz
Calcite | Level 5

Weel, I tried this one, but it did not work either,

 

Erro message below:

    

       filename YaraCASA '/folders/myfolders/YaraCASA.txt' lrecl=2000;

        data YaraCASA;

       infile YaraCASA dlm='.' truncover;

        input COLETA HORA TRATAM MACHO MOTTOT MOTPROG DAP DCL DSL VAP VCL VSL STR LIN WOB ALH BCF TRDSL TRVSL TRWOB LOGLIN;

     

 NOTE: The infile YARACASA is:

       Filename=/folders/myfolders/YaraCASA.txt,

       Owner Name=sasdemo,Group Name=sas,

       Access Permission=-rw-rw-r--,

       File Size (bytes)=30467

  NOTE: Invalid data for COLETA in line 1 1-11.

 NOTE: Invalid data for HORA in line 1 13-16.

 NOTE: Invalid data for TRATAM in line 1 18-22.

 NOTE: Invalid data for MACHO in line 1 24-28.

 NOTE: Invalid data for MOTTOT in line 1 30-34.

 NOTE: Invalid data for MOTPROG in line 1 36-40.

 NOTE: Invalid data for DAP in line 1 42-46.

 NOTE: Invalid data for DCL in line 1 48-52.

 NOTE: Invalid data for DSL in line 1 54-57.

 NOTE: Invalid data for VAP in line 1 59-62.

 NOTE: Invalid data for VCL in line 1 64-67.

 NOTE: Invalid data for VSL in line 1 69-72.

 NOTE: Invalid data for STR in line 1 74-78.

 NOTE: Invalid data for LIN in line 1 80-83.

 NOTE: Invalid data for WOB in line 1 85-88.

 NOTE: Invalid data for ALH in line 1 90-93.

 NOTE: Invalid data for BCF in line 1 95-99.

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

 

 1   CHAR  1.0.1.81.23.19.9.77.16.64.35.14.11.85.35.27.74.22.25.20.0.71.0.34.0.48.2.29.33.98.0.11.0.16.0.02.-0.

     ZONE  3030303303323303233033233033233033233033233033233033233032330323303233032330332330323303233032330232

     NUMR  19091981923E1999E77916E64935E14911E85935E27974E22925E2090E7190E3490E4892E29933E9890E1190E1690E029D0E

      101  47 102

 COLETA=. HORA=. TRATAM=. MACHO=. MOTTOT=. MOTPROG=. DAP=. DCL=. DSL=. VAP=. VCL=. VSL=. STR=. LIN=. WOB=. ALH=. BCF=. TRDSL=47

 TRVSL=. TRWOB=. LOGLIN=. _ERROR_=1 _N_=1

Reeza
Super User
Post a sample of your file
FreelanceReinh
Jade | Level 19

As far as I can tell from the "ZONE" and "NUMR" lines shown in your log, this is a tab-delimited file. So, you should use dlm='09'x instead of dlm='.'.

 

(The dots replacing non-printable characters in the "CHAR" line can be misleading at times.)

Thomaz
Calcite | Level 5

Hi,

 

The dlm='09'x worked!!!

 

Thanks a lot.

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 8 replies
  • 1072 views
  • 0 likes
  • 4 in conversation