BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
ManitobaMoose
Quartz | Level 8
Libname Learn'/folders/myfolders/SASData' ; 

Data Sales(keep = Date Amount) Inventory(keep = Partnumber Quantity) ; 
	infile '/folders/myfolders/SASData/mixed_recs.txt'  pad ; 
	Input @16 Code 2. @ ;
	If Code eq 1 then do ; 
		Out = Sales ;
		input @1 Date mmddyy10. 
		      @12 Amount 4.  ; 
		format Date mmddyy10. ;   
	end ; 
		
	
	Else if Code ne 1 then do ;
		Out = Inventory ;
		input @1 PartNumber $ 6.
		      @8 Quantity 3. ; 
	end ; 
run ; 

Data Sales_Only ; 
	Set Sales ; 
	Select ; 
	When (Missing(Date)) New = 1 ; 
	When (Not Missing(Date)) New = 2 ; 
	When (Missing(Amount)) New = 3 ;
	When (Not Missing(Amount)) New = 4 ; 
	Otherwise ; 
run ; 

Not sure where this is unclosed? Tx.

1 ACCEPTED SOLUTION

Accepted Solutions
novinosrin
Tourmaline | Level 20

I think you missed an END

 

Data Sales_Only ; 
	Set Sales ; 
	Select ; 
	When (Missing(Date)) New = 1 ; 
	When (Not Missing(Date)) New = 2 ; 
	When (Missing(Amount)) New = 3 ;
	When (Not Missing(Amount)) New = 4 ; 
	Otherwise ; 
end; run ;

View solution in original post

3 REPLIES 3
novinosrin
Tourmaline | Level 20

I think you missed an END

 

Data Sales_Only ; 
	Set Sales ; 
	Select ; 
	When (Missing(Date)) New = 1 ; 
	When (Not Missing(Date)) New = 2 ; 
	When (Missing(Amount)) New = 3 ;
	When (Not Missing(Amount)) New = 4 ; 
	Otherwise ; 
end; run ;
Kurt_Bremser
Super User

Maxim 1: Read the documentation.

http://documentation.sas.com/?cdcId=pgmsascdc&cdcVersion=9.4_3.3&docsetId=lestmtsref&docsetTarget=p0...

SAS 9.4 and Viya 3.3 Programming Documentation - Data Step Programming - Data Step Statements - Dictionary of D. S. Statements

 

The presence of the necessary end; statement is prominent in the syntax section.

 

There is a very strong reason why Maxim 1 is actually the first.

Kurt_Bremser
Super User

And you should start writing code in a visually ordered style:

Data Sales_Only ; 
  Set Sales ; 
  Select ; 
    When (Missing(Date)) New = 1 ; 
    When (Not Missing(Date)) New = 2 ; 
    When (Missing(Amount)) New = 3 ;
    When (Not Missing(Amount)) New = 4 ; 
    Otherwise ; 
  end;
run ; 

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1971 views
  • 0 likes
  • 3 in conversation