DATA Step, Macro, Functions and more

choosing the correct delimiter using proc import

Accepted Solution Solved
Reply
Super Contributor
Posts: 268
Accepted Solution

choosing the correct delimiter using proc import

what delimiter should I use for importing this .txt file?  Here is the first obs:

 

SCSchool District of*******         W******* High     007


Accepted Solutions
Solution
‎08-29-2016 08:13 AM
Super User
Posts: 10,487

Re: choosing the correct delimiter using proc import

Since you have an infile and input statements to read then it should be relatively easy to use a file statement that looks similar to the infilr and turn

   input State $1-2 District $3-20 DistNum $21-35 SchName $36-53 ...

into

   put @1 State @3 District @21 Distnum @21 Distnum @36 SchName ....;

 

The @n tells SAS to put the variable starting at that column. Assuming you haven't done anything to drastically change lengths of the values then you shouldn't have any problem.

 

View solution in original post


All Replies
Trusted Advisor
Posts: 1,372

Re: choosing the correct delimiter using proc import

The input line you demostarted seems to be without a deleimiter.

Maybe the variables are fixed length. If it is - you need know at what position each variable starts.

Super Contributor
Posts: 268

Re: choosing the correct delimiter using proc import

Good point. Actually, it is fixed width now that I think about it. I have a data file layout that I used to read it in using an INFILE statement.  (see a portion below) Essentially, my task is this: I need to output the file I cleaned up so that it matches the original dirty file. If it doesn't match it, I can't import the results to our data warehouse.  Maybe I need to rethink my whole strategy here.

 

 

data access;
infile "G:\Departments\Research\test scores\ACCESS\&yr.\raw\SC3701_Summative_Stud_File.txt"
lrecl=32767 dsd missover;
input State $1-2 District $3-20 DistNum $21-35 SchName $36-53 ....;

Solution
‎08-29-2016 08:13 AM
Super User
Posts: 10,487

Re: choosing the correct delimiter using proc import

Since you have an infile and input statements to read then it should be relatively easy to use a file statement that looks similar to the infilr and turn

   input State $1-2 District $3-20 DistNum $21-35 SchName $36-53 ...

into

   put @1 State @3 District @21 Distnum @21 Distnum @36 SchName ....;

 

The @n tells SAS to put the variable starting at that column. Assuming you haven't done anything to drastically change lengths of the values then you shouldn't have any problem.

 

☑ This topic is SOLVED.

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

Discussion stats
  • 3 replies
  • 238 views
  • 1 like
  • 3 in conversation