BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
fengyuwuzu
Pyrite | Level 9

The following code does not work. How to correct it? Thanks

 

data have ;
infile datalines missover;
input obs 2. var1 $3 var2 $3 var3 $3 ;
datalines;
obs 	var1	    var2	var3
  1                              Yes
  2      Yes
  3                  Yes
  4                  Yes
  5                  Yes
  6                  Yes
  7                  Yes
  8                  Yes
  9                  Yes
 10                  Yes
 11                  Yes
 12                  Yes
 13      Yes
 14      Yes
 15      Yes
 16      Yes
 17                  Yes
 18                  Yes
 19                  Yes
 20                  Yes
 21      Yes
 22                  Yes
 23                  Yes
 24                  Yes
 25                  Yes
 26      Yes
 27                  Yes
 28                  Yes
 29                  Yes
 30                  Yes
 31                  Yes
 32      Yes
 33                  Yes
 34                  Yes
 35                  Yes
 36      Yes
 37                  Yes
 38                  Yes
 39                  Yes
 40                  Yes
 41                  Yes
 42                  Yes
 43                  Yes
 ;
 run;
1 ACCEPTED SOLUTION

Accepted Solutions
art297
Opal | Level 21

You'll have to adjust the following based on what your actual data look like but, for your example, the following would work:

 

data have ;
  infile datalines missover;
  input obs 2-3  var1 $ 10-12 var2 $ 22-24 var3 $ 34-36 ;
  datalines;
  1                              Yes
  2      Yes
  3                  Yes
  4                  Yes
  5                  Yes
  6                  Yes
  7                  Yes
  8                  Yes
  9                  Yes
 10                  Yes
 11                  Yes
 12                  Yes
 13      Yes
 14      Yes
 15      Yes
 16      Yes
 17                  Yes
 18                  Yes
 19                  Yes
 20                  Yes
 21      Yes
 22                  Yes
 23                  Yes
 24                  Yes
 25                  Yes
 26      Yes
 27                  Yes
 28                  Yes
 29                  Yes
 30                  Yes
 31                  Yes
 32      Yes
 33                  Yes
 34                  Yes
 35                  Yes
 36      Yes
 37                  Yes
 38                  Yes
 39                  Yes
 40                  Yes
 41                  Yes
 42                  Yes
 43                  Yes
 ;
 run;  

Art, CEO, AnalystFinder.com

View solution in original post

5 REPLIES 5
Kurt_Bremser
Super User

When you specify the dsd option in the infile statement, successive delimiters are interpreted as a missing value.

But then you need to take care that only the correct number of delimiters appears between values.

Reeza
Super User

In a case like this, you'll need to upload a sample of the exact file. It's important to be able to see exactly how the delimiters are structured. The forum can easily garble this so including the text file is the only way to ensure that you get a solution that actually will work on your data. 


For example, is it by chance fixed width?

 

fengyuwuzu
Pyrite | Level 9
I actually used proc print to get the three columns. I wanted to ask a question about taking max of the three column and tried to give some example data with datalines, but I had a problem to read them in.
art297
Opal | Level 21

You'll have to adjust the following based on what your actual data look like but, for your example, the following would work:

 

data have ;
  infile datalines missover;
  input obs 2-3  var1 $ 10-12 var2 $ 22-24 var3 $ 34-36 ;
  datalines;
  1                              Yes
  2      Yes
  3                  Yes
  4                  Yes
  5                  Yes
  6                  Yes
  7                  Yes
  8                  Yes
  9                  Yes
 10                  Yes
 11                  Yes
 12                  Yes
 13      Yes
 14      Yes
 15      Yes
 16      Yes
 17                  Yes
 18                  Yes
 19                  Yes
 20                  Yes
 21      Yes
 22                  Yes
 23                  Yes
 24                  Yes
 25                  Yes
 26      Yes
 27                  Yes
 28                  Yes
 29                  Yes
 30                  Yes
 31                  Yes
 32      Yes
 33                  Yes
 34                  Yes
 35                  Yes
 36      Yes
 37                  Yes
 38                  Yes
 39                  Yes
 40                  Yes
 41                  Yes
 42                  Yes
 43                  Yes
 ;
 run;  

Art, CEO, AnalystFinder.com

fengyuwuzu
Pyrite | Level 9

Thank you, Art, this should work. 

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!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

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
  • 5 replies
  • 800 views
  • 0 likes
  • 4 in conversation