LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (November 2010, week 4)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Fri, 26 Nov 2010 11:20:41 -0800
Reply-To:     "Jack F. Hamilton" <jfh@STANFORDALUMNI.ORG>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         "Jack F. Hamilton" <jfh@STANFORDALUMNI.ORG>
Subject:      Re: $varying9. and strange input statement
Comments: To: bbser2009 <bbser2009@GMAIL.COM>
Comments: cc: art297@ROGERS.COM
In-Reply-To:  <001d01cb8d9c$66a62450$33f26cf0$@com>
Content-Type: text/plain; charset=us-ascii

1) No, the value of X is not being used as the informat's D value. It's being used as the informat's W value.

2) The statement is doing what it is designed to do and documented as doing. If you don't know what the $VARYING informat does, then no, you won't understand the results, but if you don't know what the $VARYING informat does, then you shouldn't use it.

Do you have a suggestion for a less "sloppy" way to do the same thing?

On Nov 26, 2010, at 11:01 , bbser2009 wrote:

> Art and Jack > > Consider two input statements to read the character data value 3sunfish: > 1. input x 1. name $varying9. x; > 2. input x 2. name $9. x; > > As you mentioned, > 1) in the first input statement, SAS treats the second x as the d value, > namely, the decimal part of the informat $varying9. > 2) But for the second input statement, SAS seemly tries to read another > numeric value for the second x, so we actually ended up with a missing value > for x in the output. > > This is really a sloppy grammar. Any comments, please? > > Max > > > -----Original Message----- > From: Jack F. Hamilton [] > Sent: November-26-10 1:22 PM > To: bbser2009 > Cc: SAS-L@LISTSERV.UGA.EDU > Subject: Re: [SAS-L] $varying9. and strange input statement > > The example you show below is straight out of the documentation: > > > <> > > You should send email to asking them to improve the > documentation if you don't think it's sufficient. I agree that the > documentation is a bit murky, but working through the two examples should > make it clear. > > "input x 1." reads "3" from the input line and stores it as the number 3 in > the variable X. > > "name $varying9. x" reads the next portion of the input line into variable > NAME. How much does it read? The number of characters specified in > variable X. You just set the value of X to 3, so it reads 3 characters. If > x equals 3, then "$varying9. x" reads 3 characters. If x equals 8, > "$varying9. x" reads 8 characters. > > > > > On Nov 26, 2010, at 9:55 , bbser2009 wrote: > >> Here are two questions about the code below: >> 1. Why the value for the variable name is the string "sun" instead of >> "sunfish"? >> 2. What's the purpose for listing the second x in the input statement? >> >> Thanks. Max >> >> data temp; >> input x 1. name $varying9. x; >> cards; >> 3sunfish >> ; >> proc print; >> run; >> >> Result of this code: >> >> obs x name >> 1 3 sun >

Back to: Top of message | Previous page | Main SAS-L page