Date: Mon, 15 Jul 1996 20:47:14 -0400
Reply-To: Alain Dufour <Alain_Dufour@INRS-URB.UQUEBEC.CA>
Sender: "SAS(r) Discussion" <SAS-L@UGA.CC.UGA.EDU>
From: Alain Dufour <Alain_Dufour@INRS-URB.UQUEBEC.CA>
Subject: Re: SAS-L Digest - 12 Jul 1996 - Special issue
In-Reply-To: <199607130116.VAA07565@hermes.inrs-urb.uquebec.ca> from
"Automatic digest processor" at Jul 12, 96 09:15:01 pm
Concernant le probleme des categories manquantes dans un proc FREQ, ca
n'a pas l'air d'etre facile a resoudre: voir les messages 3 et 5....
ALain
>
> There are 21 messages totalling 1110 lines in this issue.
>
> Topics in this special issue:
>
> 1. Query with macro resolving
> 2. file contribution server?
> 3. Forcing SAS to output all categories of a variable, even if it is missing
> 4. Memory Problem (2)
> 5. Forcing SAS to output all categories of a variable, even if
> 6. Thanks: Help - Time in SAS Output
> 7. Forcing SAS to output all categories of a variable, even
> 8. MVS SAS output conversion to RTF document (2)
> 9. Forcing SAS to output all categories of a variable,
> 10. South East SAS Users Group (SESUG) Wants You!
> 11. SAS dataset on PC to UNIX
> 12. Binomial Confidence Interval
> 13. What does this error mean?
> 14. Printing Proc Plot from Output Window
> 15. AF vs FRAME
> 16. OOPS!!! (was: South East SAS Users Group (SESUG) Wants You
> 17. Computer Hell and Lost Mail??
> 18. trying to get R-squared to 9 decimal places
> 19. SAS to Excel and back
>
> ----------------------------------------------------------------------
>
> Date: Fri, 12 Jul 1996 11:48:45 EDT
> From: Ian Whitlock <whitloi1@WESTATPO.WESTAT.COM>
> Subject: Re: Query with macro resolving
>
> Subject: Query with macro resolving
> Summary: It's a matter of logic, not macro resolving.
> Respondent: Ian Whitlock <whitloi1@westat.com>
>
> Nelson Kinnersley <nelson@DIRCON.CO.UK> asks an interesting question:
>
> Why does
>
> %IF &where NE %THEN
>
> give different results for
>
> WHERE = a eq 1
> and
> WHERE = a eq 1 and b eq 1
>
> To find out it is simpler to work with %EVAL and %PUT. Now
>
> (*) %eval ( a eq 1 ne ) is 1
> and
> (**) %eval ( a eq 1 and b eq 1 ne ) is 0
>
> Of course by now one should realize that what Nelson wanted was to find
> out if the WHERE expression was null or not(if not see his message at
> the end). Unfortunately he fell into the trap of evaluating logical
> expressions. The quick cure for this problem is a little quoting
>
> %eval ( %quote(&where) ne )
>
> You must hide the EQ and the AND symbols from %EVAL in order to get a
> real test of whether &WHERE is null or not.
>
> Now let's try to understand what happened with (*) and (**).
>
> a eq 1
>
> is false (letters and numbers are never equal) i.e. 0, hence
>
> %eval ( a eq 1 ne ) = %eval ( 0 ne )
>
> But 0 and null are not equal, thus the expression (*) is true, i.e. 1.
>
> How does %EVAL read ( a eq 1 and b eq 1 ne )? You first have to
> understand how to add parentheses to get an unambiguous expression.
>
> Since I wouldn't trust anything but %EVAL I stared at the following
> log.
>
> NOTE: AUTOEXEC processing completed.
>
> 1 %put %eval ( 0 ne ) ;
> 1
> 2 %put %eval ( 0 and 0 ne ) ;
> 0
> 3 %put %eval ( 0 and ( 0 ne ) ) ;
> 0
> 4 %put %eval ( ( 0 and 0 ) ne ) ;
> 1
> 5 %put %eval ( ne ) ;
> 0
> 6 %put %eval ( %quote(0) ne ) ;
> 1
> 7 %put %eval ( %quote(0 and 0) ne ) ;
> 1
> 8 %put %eval ( %quote(a=1 and b=1) ne ) ;
> 1
> 9 %put %eval ( %quote(a=1) ne ) ;
> 1
> 10 %put %eval ( ne ) ;
> 0
>
> From lines 2 and 3 one can see
>
> %eval ( a eq 1 and b eq 1 ne )
>
> is equivalent to
>
> %eval ( (a eq 1) and ( ( b = 1 ) ne ) )
> %eval ( 0 and ( 0 ne ) )
> %eval ( 0 and 0 )
>
> which is just 0. Thus (*) and (**) have different values and neither
> has anything to do with the question whether &WHERE is null or not!
>
> You now know why the macro programmer *must* learn to quote. I have
> been told it is easy. And after many years of questioning I see that
> it is, but don't quote me.
>
> Ian Whitlock
> ------------------------------- Message Contents -------------------------------
> SAS-L,
>
> Perhaps the following is a well known feature but it was unexpected to me
> when I found it happening, so I thought I would see how many others were
> unaware of it.
>
> If I want to apply some conditional statements within a macro I usually
> test if the macro argument is blank. For example in the the following I
> want to conditionally apply a WHERE statement if the macro argument
> contains a string (similarly for applying a BY statement):
>
> %IF &where NE %THEN %DO;
> WHERE &where;
> %END;
>
> This works fine if &where is a simple expression e.g. day eq 1
> but the %IF clause evaluates to FALSE if it is a composite expression e.g.
> day eq 1 and sex eq 1
>
> I know that a workaround is to enclose &where with brackets in the %IF
> statement but I still don't fully understand why it fails on composite
> clauses.
>
> Anybody got any insight or is this news to you?
>
> I've included some SAS code below to reproduce the problem (a stripped
> down version of the original problem in which the WHERE statement was
> within a PROC FREQ).
>
> Nelson
>
> title 'Test Data';
> * Set-up some test data;
> data testdata;
> do a=1 to 3;
> do b=1 to 4;
> c=int(100*ranuni(a*b));
> output;
> end;
> end;
> run;
>
> proc print;run;
>
> options mprint mlogic symbolgen;
>
> %macro test(indata=,where=,outdata=);
>
> data &outdata;
> set &indata;
> %if &where ne %then %do;
> where &where;
> %end;
> run;
>
> %mend test;
>
> %test(indata=testdata,where=a eq 1,outdata=testout1);
>
> title2 'Correctly Applies WHERE clause - so datasets differ';
> proc compare data=testdata compare=testout1;
> run;
>
> %test(indata=testdata,where=a eq 1 and b eq 1,outdata=testout2);
>
> title2 'WHERE clause evaluates to FALSE and so datasets identical -
> WRONG';
> proc compare data=testdata compare=testout2;
> run;
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 18:32:17 -0500
> From: GERALD ZUCKIER <ZUCKIER@CHIME.ORG>
> Subject: file contribution server?
>
> Having received no updates since 22 May, I must ask, has anyone else received
> any updates from the SAS file contribution server since then? And if so,
> presumably I have been dropped, and can anyone remind me how to reregister with
> it?
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 13:39:15 -0400
> From: "Theisen, Anne C." <anne@RTI.ORG>
> Subject: Forcing SAS to output all categories of a variable,
> even if it is missing
>
> I periodically have subsets of data where a category on a variable will
> be missing. I need to output this category even if it is missing. Is
> there a way to do this. For example, RACE, has 1=white 2=black
> 3=hispanic 4=other. There are times when I have no "others" in the
> sample but I still need to see that "other" was and option...
>
> white 25 25.0%
> black 25 25.0%
> hisp 50 50.0%
> other 0 0.0%
>
> ------------------------------
>
> Date: Thu, 11 Jul 1996 17:52:06 GMT
> From: "John E. Bentley" <bentleyj@IX.NETCOM.COM>
> Subject: Re: Memory Problem
>
> I don't think that running the job in batch mode is the solution.
> SAS/Windows isn't designed like that.
>
> First check the size of the swap file. SAS recommends 25 megabytes.
> Then try running the program with all non-SAS applications closed.
>
> Have you run DOS's memmaker routine? It'll move all tsr's and some
> drivers to high memory to free up more memory for DOS (and Windows,
> since it's running under DOS).
>
> If you do want to add memory, right now it's cheap, cheap, cheap.
>
> Good luck.
>
>
> Eli Baker <ebaker@MAIL.MED.CORNELL.EDU> wrote:
>
> >Hi gang,
>
> >Well, it finally happened: I have a problem which comes back with an 'out of
> >memory' notation. When I was using the DOS version, I merely ran the job in
> >batch and it always solved the problem. Can one run a batch job for SAS
> >6.10?? If not, what's the most efficient way of increasing the available
> >memory? I'm running 6.10 on a 486 with 8 megs of RAM.
>
> >TIA
>
> >Eli Baker, CUMC
>
> John E. Bentley
> Chicago, IL, USA
> -----------------------------------
> Send lawyers, guns, and money.
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 10:50:04 PDT
> From: TWB2%Rates%FAR@GO50.COMP.PGE.COM
> Subject: Re: Forcing SAS to output all categories of a variable, even if
>
> In many PROC's, the MISSING option will do this. I am not referring to
> the option statement which specifies a print value for missing values,
> but to an option available in several PROC's:
>
> PROC FREQ DATA=MINE.ALLMINE;
> WHERE LASTDATE LT '01JAN94'D;
> TABLE RACE*AGECAT / MISSING;
> RUN;
>
> By the way, I almost always use the LIST option on FREQ table requests
> to get a format like your example below. I did not code the LIST option
> on this sample because I did not want readers to think the sequence
> "LIST MISSING" was a single option.
>
> Tim Berryhill - Contract Programmer and General Wizard
> TWB2@PGE.COM
> Frequently at Pacific Gas & Electric Co., San Francisco
> The correlation coefficient between their views and
> my postings is slightly less than 0
> ----------------------[Reply - Original Message]----------------------
>
> Sent by:"Theisen, Anne C." <anne@RTI.ORG>
> I periodically have subsets of data where a category on a variable will
> be missing. I need to output this category even if it is missing. Is
> there a way to do this. For example, RACE, has 1=white 2=black
> 3=hispanic 4=other. There are times when I have no "others" in the
> sample but I still need to see that "other" was and option...
>
> white 25 25.0%
> black 25 25.0%
> hisp 50 50.0%
> other 0 0.0%
>
> =====================================================================
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 18:50:46 -0500
> From: GERALD ZUCKIER <ZUCKIER@CHIME.ORG>
> Subject: Re: Memory Problem
>
> Not specifically SAS-related, but if this is Windows 3.x a lot of these out of
> memory messages are the result of running out of memory in the graphics resource
> segment, which is 64K and cannot be increased. There are various shareware and
> commercial (norton utilities) items around that will monitor resource usage for
> you, and even sound an alarm when you get near danger. Meanwhile, in case it is
> your graphics segment, you might try getting rid of a bunch of fonts, icons,
> whatever might be taking up memory, and try again.
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 11:57:42 -0700
> From: Wei Yen <WEI@OFM.WA.GOV>
> Subject: Thanks: Help - Time in SAS Output
>
> Many thanks to Raymond Hu, Kevin Martin, and Tom Abernathy who responded to
> my post "Help - Time in SAS Output". The question was how to reset the date
> and time in the SAS output header to the current date and time instead of
> the date and time when SAS was first opened. All of them indicated that
> macro variables be created to store values generated from system date and
> time functions and then refer to the macro variables in the title
> statements. Although this solution requires more work than I expected (I
> was looking for something like a SAS system option), it appears to the best
> because no other choices are available. Thanks again.
>
> Wei Yen
> State of Washington Office of Financial Management
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 12:23:12 PDT
> From: TWB2%Rates%FAR@GO50.COMP.PGE.COM
> Subject: Re: Forcing SAS to output all categories of a variable, even
>
> Oh, how silly of me! I answered the wrong question again. The actual
> question is MUCH harder than the one I answered.
>
> If the category '2' does not appear in the data, SAS does not notice
> that 1, 3 and 4 all appeared and insert a 2. Even worse, when the
> subsetting happened to exclude all category 4 observations, SAS does not
> notice that the categories include 1, 2 and 3 but not 4 and add 4, while
> not adding 5 which is not a valid category at all.
>
> I suppose in the case of a subsetting WHERE, SAS could read the excluded
> observations to look for excluded categories, but it does not. If you
> use intermediate datasets and subsetting IF's, there is no way for SAS
> to check.
>
> If you REALLY want the omitted lines inserted, you will have to tell SAS
> what lines to insert:
>
> DATA FILLIN;
> DO CAT=1 TO 4;
> COUNT=0;
> PERCENT=0;
> OUTPUT;
> END;
> RUN;
>
> PROC FREQ DATA=MYDATA.ALLMINE;
> WHERE CAT GT 2;
> TABLE CAT / NOPRINT OUT=WORK.DATA;
> RUN;
>
> DATA REPORT;
> MERGE FILLIN
> DATA;
> BY CAT;
> RUN;
>
> PROC PRINT DATA=REPORT;
> RUN;
>
> The FILLIN dataset has all values of CAT, with obs reflecting a count of
> zero and a percent of zero for each category. The PROC FREQ generates
> an output dataset with non-missing values of COUNT and PERCENT for each
> value of CAT which satisfied the WHERE clause (or whatever subsetting
> you choose). The merge reads the FILLIN obs, with COUNT and PERCENT of
> zero, then overwrites them with the actual counts from the PROC FREQ
> output dataset. Where PROC FREQ did not generate an ob because the
> category did not exist, the values from FILLIN are retained in the final
> report.
>
> See why I answered the easy question, instead?
>
> Tim Berryhill - Contract Programmer and General Wizard
> TWB2@PGE.COM
> Frequently at Pacific Gas & Electric Co., San Francisco
> The correlation coefficient between their views and
> my postings is slightly less than 0
> ----------------------[Reply - Original Message]----------------------
>
> Sent by:"Theisen, Anne C." <anne@rti.org>
> Thanks for the suggestion. I tried it. This give me the percentage of
> "missing" data for the variable but won't show that a category is
> missing. For example, if RACE is suppose to have categories 1,2,3,4...
> and noone responded 2, (and there is missing data) this is what I get..
>
> . 10 10%
> 1 25 25%
> 3 25 25%
> 4 40 40%
>
> but category 2 is not shown as a 0 response at 0%. What do you suggest?
> Is it possible to show the "2" response option?
>
> Thanks, Anne
> >
>
> =====================================================================
>
> ------------------------------
>
> Date: Thu, 11 Jul 1996 18:48:55 GMT
> From: Jukka Ketelaars <J.J.Ketelaars@INTER.NL.NET>
> Subject: Re: MVS SAS output conversion to RTF document
>
> On Wed, 10 Jul 1996 16:34:30 -0700, Bruce Kayton
> <bakayton@ix.netcom.com> wrote:
>
> >I am working on a project that proposes to convert MVS SAS reports to an
> >RTF document. The objective is to distribute reports via e-mail using
> >the RTF document in an e-mail attachment.
>
> Hi Bruce, I have used SAS to create RTF files to feed to the Microsoft
> Help Compiler. It's actually very easy, you just write a datastep that
> creates your RTF file from your input file.
>
> The boring bit is of course where you search all the RTF codes, and
> have to output them. The easiest way to do this (in my opinion anyway)
> is to just create your document lay-out with a word processor, save it
> as an RTF file, then reverse engineer it and create a datastep that
> outputs RTF.
>
> This outputfile is nothing special as no special codes appear in the
> RTF file, just plain ASCII (or EBCDIC). When you transfer it to the
> LAN, do it with CR/LF and ASCII conversion.
>
> Jukka
> --
> J.J.Ketelaars@inter.NL.net
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 15:37:30 EDT
> From: Ian Whitlock <whitloi1@WESTATPO.WESTAT.COM>
> Subject: Re: Forcing SAS to output all categories of a variable,
>
> Subject: Forcing SAS to output all categories of a variable,
> Summary: It's not an option, but with a little effort you might
> make it work.
> Respondent: Ian Whitlock <whitloi1@westat.com>
>
> Anne C. Theisen <anne@RTI.ORG> expresses a desire given many times
> before, on and off SAS-L:
>
> >I periodically have subsets of data where a category on a variable will
> >be missing. I need to output this category even if it is missing. Is
> >there a way to do this. For example, RACE, has 1=white 2=black
> >3=hispanic 4=other. There are times when I have no "others" in the
> >sample but I still need to see that "other" was and option...
> >
> > white 25 25.0%
> > black 25 25.0%
> > hisp 50 50.0%
> > other 0 0.0%
>
> Currently this is not an option on PROC FREQ. I assume we are talking
> about the FREQ results of a single variable. The problem here is that
> you know 4 is a missing category and 5 is not, but how can SAS know?
>
> A reasonable answer is "I formatted the variable with 4 values, those
> are the values I want and only those." Now are are getting some where,
> FREQ knows what it counted, the format knows what should be counted.
> It only remains to update the format information with the counts and
> produce a report or wait until SI does the work.
>
> Here is the code for Ann's case. It illustrates the special case
> where the format is a one-to-one mapping between values and labels and
> the variable of interest is numeric. (One could generalize and have a
> macro manage the process below, but I would want to think about it a lot
> before coding it that way. For now, think of RACE, W, and RACE. as
> pre-macro variables.)
>
> data w ; /* test data */
> do i = 1 to 100 ;
> select ;
> when ( i <= 25 ) race = 1 ;
> when ( i <= 50 ) race = 2 ;
> otherwise race = 3 ;
> end ;
> output ;
> end ;
> run ;
>
> proc format ; /* test format */
> value race
> 1 = 'white'
> 2 = 'black'
> 3 = 'hisp'
> 4 = 'other'
> ;
> run ;
>
> Now we are ready to put the plan into action.
>
> /* get the freq */
> proc freq data = w ;
> table race / noprint out = __fqdata ;
> run ;
>
> /* get the format */
> proc format lib = work
> cntlout = __fmdata ( keep = start ) ;
> select race ;
> run ;
>
> /* convert character to numeric */
> data __fmdata ( keep = race ) ;
> set __fmdata ;
> race = input ( left ( start ) , best12. ) ;
> run ;
>
> proc sort data = __fmdata ;
> by race ;
> run ;
>
> proc sort data = __fqdata ;
> by race ;
> run ;
>
> data __cnts ; /* update the format with counts */
> update __fmdata __fqdata ;
> by race ;
> if count = . then count = 0 ;
> if percent = . then percent = 0 ;
> if percent > 0 then percent = percent / 100 ;
> run ;
>
> /* print the report */
> proc print data = __cnts ;
> format race race. percent percent. ;
> run ;
>
> Observations had an article about managing this sort of trick for PROC
> TABULATE within the last two years, I think. There the work was done
> prior to the TABULATE instead of after.
>
> Ian Whitlock
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 16:06:36 EDT
> From: "F.Joseph Kelley" <JKELLEY@UGA.CC.UGA.EDU>
> Subject: South East SAS Users Group (SESUG) Wants You!
>
> Hi SESUG Attendees!
> Well, with the South Eastern SAS Users' Group (SESUG) Conference
> coming up this October, I know (!) that many of you are interested
> in working as Session Coordinators. This is an easy (well, pretty
> much) and fun way to involve yourself in the workings of the
> Conference (none of the user group conferences - SUGI, SESUG, NESUG,
> etc - just put themselves on y'know). Session Coordinators are
> present to assist the speakers and attendees and generally to
> assure that a presentation goes smoothly. Typically, several
> are present, though the number can vary. You don't work the
> entire Conference, just a few hours (of course you may volunteer
> for more).
>
> (begin blatant appeal)
> I will be chairing the "Statistics, Econometrics & Operations
> Research" Section, and I need some coordinators. We have a
> number of presentations lined up and some assistance is going
> to be essential. It goes without saying that Session Coordinators
> get all the fame, glory and prestige possible. They also get
> a ribbon on their badge. All that!
> (end blatant appeal)
>
> OK, seriously, if you are interested in getting involved in the
> conference, this is a great way to start. And I could use the
> help. If you are interested in working in one of the other
> sections, I have included the names and email addresses of my collegues
> at the bottom of this note. I cannot say whether they are in need of
> any assistance.
>
> Thanks, and see you in Atlanta --
> Joseph Kelley
> Section Chair, Statistics, Econometrics, & Operations
> Research: SESUG '96
>
> jkelley@uga.cc.uga.edu
>
> PS For Registration information, contact my collegue George Matthews
> george@uga.cc.uga.edu
> If you are interested in working Registration, he is the one to
> talk to....
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> skenny@quintiles.com Susan Kenney
> 0006495817@mcimail.com Dave Riba
>
> advanced tutorials
> ---------------------------------
>
> rcfinch@hiwaay.net Randy Finch
> spdeb@tva.gov Dan Bruns
>
> applications
> ---------------------------------
>
> 0005251597@mcimail.com Melissa Garreans
> usjpimrk@ibmmail.com Margaret Richardson
>
> beginning tutorials
> ---------------------------------
>
> jrpassmore@mcimail.com (soon to become: Passmore@NandO.net)
> Robert Passmore
>
> clinic
> ---------------------------------
>
> maribeth@stat.mcg.edu Maribeth Johnson
> 0005949476@mcimail.com Andy Kuligowski
>
> coder's corner
> --------------------------------
>
> william-jacoby@sc.edu William Jacoby
>
> Information Visualization
> --------------------------------
>
> merecb@interpath.com Eric Brinsfield
> pdalberth@fhi.org Paul Dalberth
>
> Host Systems
> --------------------------------
>
> Jkelley@uga.cc.uga.edu Joseph Kelley
>
> Statistics/Econometrics/Operations Research
> --------------------------------
>
> gerri_furlow@ncsu.edu Gerri Furlow
> sally_muller@unc.edu Sally Muller
>
> User Support and Training
> --------------------------------
>
> ctoppe@cscmail.csc.com Chris Toppe
>
> data warehousing
> --------------------------------
>
> ------------------------------
>
> Date: Thu, 11 Jul 1996 15:09:50 -0500
> From: Bruce S Libman <blibman@SUNSET.BACKBONE.OLEMISS.EDU>
> Subject: SAS dataset on PC to UNIX
>
> Hello,
>
> I need to transfer a SAS data set from the PC (DOS) to
> mainframe UNIX. What is the protocol for doing this data transfer?
>
> Thanks,
>
> Bruce
>
>
> Bruce Libman
> Department of Biology
> University of Mississippi
> University, MS 38677
> blibman@olemiss.edu
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 17:17:44 EDT
> From: Timothy Ousley <ousleytm@PWFL.COM>
> Subject: Re: Binomial Confidence Interval
>
> Hi SAS-Lers,
>
> Just my $.02 on confidence intervals for the binomial (bernoulli)
> parameter. The following program produces a table of all possible
> outcomes of a binomial experiment along with exact one-sided and two-sided
> confidence intervals for each outcome. To use it, just change the values of thetwo macro variables at the top of the program: n = the number of trials in the experiment and conf = the percent confidence desired.
>
> Tim
>
> ==============================================================================
>
> /************************************************************/
> /* This program creates a table of confidence limits for */
> /* p = the bernoulli parameter where: */
> /* n = sample size, conf = confidence level. */
> /* To make a new table, change the values of the macro */
> /* variables 'n' and 'conf" on lines 9 and 10 below. */
> /* Programmer: Tim Ousley 407-796-8023
> /************************************************************/
>
> %let n = 100; *Sample size (the number of bernoulli trials);
> %let conf = 95; *Confidence level in percent (e.g.conf = 95 for alpha of .05);
>
> options pageno=1 nodate;
>
> data binci;
>
> alpha = (100-&conf)/100;
> do x = 0 to &n;
> phat=x/&n;
>
> If ( (x > 0) & (x < &n)) then do;
> pu=betainv(1-alpha/2,x+1,&n-x);
> pl=betainv(alpha/2,x,&n-x+1);
> end;
> else do;
> pu = .;
> pl = .;
> end;
>
> if (x < &n) then pub=betainv(1-alpha,x+1,&n-x);
> else pub = 1;
>
> if (x>0) then plb=betainv(alpha,x,&n-x+1);
> else plb = 0;
>
> output;
> end;
>
> proc print label noobs;
> var x phat pl pu plb pub;
> label
> x = 'Number of Successes'
> phat = 'P hat'
> pl = 'Two sided lower confidence limit'
> pu = 'Two sided upper confidence limit'
> plb = 'One sided lower bound'
> pub = 'One sided upper bound' ;
>
> title1 "Table of &conf% Confidence Limits for p";
> title2 "Sample size = &n";
> run;
>
>
>
> |===================================================================|
> | Tim Ousley |
> | Pratt & Whitney |
> | Mail Stop 731-82 INTERNET: ousleytm@pwfl.com |
> | P.O. Box 109600 Voice : 407-796-8023 |
> | West Palm Beach, FL 33410-9600 Fax : 407-796-5362 |
> |===================================================================|
>
> ------------------------------
>
> Date: Thu, 11 Jul 1996 23:13:00 -0700
> From: Gavin <bizarre@ICON.CO.ZA>
> Subject: Re: What does this error mean?
>
> Your Swap file is too small, increase it to at least 15mb.
>
> Maria Winter wrote:
> >
> > Hope someone can help...
> >
> > Trying to run SAS on my notebook resultet in
> > "SAS: Host Internal Error: 11"
> > Now what does this mean?
> > (I'm not the world's greatest SAS-expert, I just had to try and cope
> > with it because I accepted a job teaching SAS to archeologists and I'm
> >
> > still at beginner's level => so please try and reply in proper English
> > (or German) and not in SAS-speak...)
> >
> > Thx in advance
> >
> > Maria Winter
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 17:11:54 EDT
> From: Lorna Simon <Lorna.Simon@BANYAN.UMMED.EDU>
> Subject: Re: Printing Proc Plot from Output Window
>
> Dear SAS-Lers,
>
> I have what I hope is a simple problem for more clever minds than mine to
> solve. I'm trying to print a simple plot of a daily mood score for a number
> of months, one month per page (with a by statement). I'm using linesize=132
> and pagesize=61. In the output window, I can see a point plotted for each
> day of the month. But when I print it (landscaped), only about 2/3 of the
> points print. The entire X axis does print out, however. Does this have
> something to do with my printer, or have I left out some option? I'm using
> a Panasonic KX-P2624 dot matrix printer with a Gateway 2000 Pentium 75. Any
> ideas would be appreciated.
>
> Lorna J. Simon, M.A., Research Associate
> Center for Psychosocial & Forensic Services Research
> Department of Psychiatry
> University of Massachusetts Medical School
> 55 Lake Avenue North
> Worcester, MA 01655-0329
>
> Phone: 508-856-5498, 508-793-1550
> FAX: 508-754-5007
> email: lsimon@banyan.ummed.edu
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 18:02:42 -0400
> From: UTRF048@DSIBM.OKLADOT.STATE.OK.US
> Subject: Re: AF vs FRAME
>
> In article <Pine.SUN.3.92.960711144031.2768M-100000@wubios>,
> Mary Bednarski <maryb@WUBIOS.WUSTL.EDU> writes:
>
> >Hi everyone,
> >
> >We are using SAS 6.08 on Windows 3.11 but moving toward SAS 6.11.
> >We run programs that create reports and perform various data management
> >activities via an AF menu system.
> >
> >Our question is: what are the advantages/disadvantages of FRAME over
> > AF?
> >
> >Mary Bednarski, Programmer
> >Washington University School of Medicine
>
> Mary, SAS/FRAME entries are actually like Visual Basic, i.e. it is
> actually SAS's version of OOP.
>
> Good Luck
> Masoud
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 18:11:26 EDT
> From: "F.Joseph Kelley" <JKELLEY@UGA.CC.UGA.EDU>
> Subject: OOPS!!! (was: South East SAS Users Group (SESUG) Wants You
>
> Hi again SESUG attendees ......
> Well, in my haste to provide you with the email address of the SESUG '96
> Conference Registrar, my collegue George Matthews, I managed to send the
> alias I have for him in my nicknames file. Sorry George, and SESUG-ers.
> For info on registration, use:
>
> gmatthew@uga.cc.uga.edu George Matthews
>
> This will work _much_ better. -- Joe
> jkelley@uga.cc.uga.edu
>
> (it's Friday, and I'm getting outta here)
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 11:26:01 -0400
> From: Paul Wehr <wehrp@AA.WL.COM>
> Subject: Re: MVS SAS output conversion to RTF document
>
> Bruce Kayton wrote:
> >
> > I am working on a project that proposes to convert MVS SAS reports to an
> > RTF document. The objective is to distribute reports via e-mail using
> > the RTF document in an e-mail attachment.
> >
> > Has anyone done something similar or is there a utility that I am not
> > aware of? If so I'd appreciate some input.
> >
> > TIA
> > --
> > |Bruce Kayton |"Life is what happens while you're busy |
> > |bakayton@ix.netcom.com | making other plans" - John Lennon |
> > -----------------------------------------------------------------------
>
> We've done a similiar thing at our site. Take a look at
> http://pages.prodigy.com/paul_wehr/sugi21.htm#benefits and see if that is
> close to what you are looking for. The web document is an HTML version of
> the paper I did at SUGI 21.
>
> If you are interested in the source code, mail me at wehrp@aa.wl.com, and
> I would be happy to mail it to you.
>
> On the other hand, you should be able to mail the original default SAS
> output with a MIME type of "text/plain", and bypass RTF altogether.
>
> Hope this helps,
>
> -paul
>
> --
> "Take charge. Think it through. Make it happen."
> Paul Wehr Ann Arbor, MI: http://pages.prodigy.com/paul_wehr/
> wehrp@aa.wl.com tnxt15b@prodigy.com traverlks@aol.com
> RIP: wally@eworld.com :(
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 16:48:17 -0700
> From: Paul OldenKamp <oldenkmp@REDWOOD.RT.CS.BOEING.COM>
> Subject: Computer Hell and Lost Mail??
>
> ----------------------------------------------------------------------
> CONTENT: Computer Hell and Lost Mail??
> REL/PLTF: N/A
> E-ADDR: oldenkmp@espresso.rt.cs.boeing.com
> NAME: Paul OldenKamp
> PHONE: (206)865-4481
> ----------------------------------------------------------------------
> Hello All,
>
> I have been suffering from the effects of mail disruptions and system
> upgrades(?) for the past week.
>
> While the disruption in the SAS-L was occuring late last week the
> support(?) folks here changed my default mail server location.
>
> When it seemed that I wasn't receiving the SAS-L I sent a subscribe
> message to the server. If one is currently subscribed the server just
> sends back a message to that effect so there is no adverse consequence.
>
> This time the server subscribed me to my new address but only a few
> scattered messages arrived. When the SAS-L go fixed messages arrived
> for both my old mail server and my new one and were stored on my new
> one but were not sent to Netscape on my PC since it still pointed to
> the old location.
>
> Then on Monday my Sun was upgraded to Solaris 2.5 and my PC was
> upgraded to Windows95. When I went home neither computer worked and
> my most of my e-mail seemed to be missing.
>
> Finally on Wednesday I found where my mail was and transfered two
> copies of all the SAS-L messages that had piled up since last week.
> I have been cleaning up problems left over from all this for the
> last two days.
>
> I have tried to reply to all messages sent to me personally since
> July 3rd and if you have sent me a message and have not received
> a reply you may want to resend it. Thanks.
> --
> ----------------------------------------------------------------------
> // Paul OldenKamp
> // Boeing Commercial Airplane Group .
> // P. O. Box 3707, MS 7J-67 |\
> // Seattle, WA 98124-2207 | \____oo_
> //==========================================((__| /___>
> // ___ ___ ___ ___ __ | //
> // /__// //__ / /\ // _ |//
> // /__//__//__ _/_ / //__/ ''
> //
>
> ------------------------------
>
> Date: Thu, 11 Jul 1996 20:46:30 GMT
> From: Dean Nelson <denelson@FACSTAFF.WISC.EDU>
> Subject: Re: trying to get R-squared to 9 decimal places
>
> In article <4rs8e2$p8m@news.wco.com>, doliov@wco.com says...
> >
> >Dean Nelson (denelson@facstaff.wisc.edu) wrote:
> >:Does anyone know how to get R-squared from an OLS model to 9 decimal places?
> >:
> >your post piqued my interest. just as a matter of curiosity, why would
> >you want the ninth decimal place of an R-square value?
>
> Evidently, the student with the problem will be calculating some statistic
> based on the value of rsquare, and part of the calculation involves either
> dividing or multiplying by 280,000, I forget which.
>
> Another problem has cropped up in this solution. The model he is using has
> 68 independent variables. PROC RSQUARE generates all possible regressions...
> (pause)...I think you are beginning to see the problem. Anyway, I tried to go
> back to the documentation and found that the procedure isn't documented, at
> least not in the latest manuals (I just happened to be thumbing through a
> version 5 manual when I first came across it). After trying to track down
> what happened to it, I finally decided to go back to PROC REG and see if I
> could get what I needed there. Here is my quick and dirty solution:
>
> libname dir 'c:\public';
>
> proc reg data=dir.health;
> model weight=age height;
> output out=reg r=resids;
>
> proc means data=dir.health noprint;
> var weight;
> output out=wmean var=totvar;
>
> proc means data=reg noprint;
> var resids;
> output out=rmean var=resvar;
>
>
> data _null_;
> merge wmean rmean;
> rsquare=1-(resvar/totvar);
> put rsquare 12.9;
>
> run;
>
>
> Dean
>
> ------------------------------
>
> Date: Fri, 12 Jul 1996 14:40:37 -0700
> From: Rodney Presley <rpresley@CCLINK.FHCRC.ORG>
> Subject: SAS to Excel and back
>
> SAS running on local WIN NT machine over Novell network.
> Excel 7.0 for WIN 95 running from local hard drive.
>
> Please refer to log below.
>
> The program appears to work correctly through line 227. Observations
> from the SAS data set are written to the Excel spreadsheet. Data is
> read from the Excel spreadsheet back into the SAS work file TEMP. It
> appears that commands to save the Excel spreadsheet are sent by SAS
> but nothing happens. Switching windows reveals that the Excel
> spreadhseet is still named BOOK1.
>
> SI tech support has nothing to say about the commands that are sent to
> Excel. Where can I learn more about this for Excel version 7? The
> article by Mark Bodt in OBSERVATIONS, Vol. 5, No. 3 is aimed toward
> Excel version 4.
>
> Any suggestions would be appreciated.
>
> 207 options noxwait noxsync ;
> 208
> 209 /* send system command to start excel */
> 210 x cd c:\msoffice\excel
> 210 ;
> 211 x excel
> 211 ;
> 212 /* wait for excel to startup. Time varies and must be guessed.
> */
> 213 data _null_;
> 214 x=sleep(35);
> 215 RUN;
>
> NOTE: The DATA statement used 40.8 seconds.
>
>
> 216 /* filename to send data to spreadsheet */
> 217 filename names DDE 'Excel|[Book1]Sheet1!R1C1:r120c2';
> 218 data _null_ ;
> 219 set charges.datadump;
> 220 file names notab ;
> 221 put fhcrcid '09'x pname ;
> 222 run;
>
> NOTE: The file NAMES is:
> FILENAME=Excel|[Book1]Sheet1!R1C1:r120c2,
> RECFM=V,LRECL=256
>
> NOTE: 77 records were written to the file NAMES.
> The minimum record length was 17.
> The maximum record length was 30.
> NOTE: The DATA statement used 5.73 seconds.
>
>
> 223 data temp;
> 224 length pname $50;
> 225 infile names truncover ;
> 226 input fhcrcid pname $char50. ;
> 227 run;
>
> NOTE: The infile NAMES is:
> FILENAME=Excel|[Book1]Sheet1!R1C1:r120c2,
> RECFM=V,LRECL=256
>
> NOTE: 120 records were read from the infile NAMES.
> The minimum record length was 1.
> The maximum record length was 29.
> NOTE: The data set WORK.TEMP has 120 observations and 2 variables.
> NOTE: The DATA statement used 0.87 seconds.
>
>
> 228 /* filename to pass system commands to Excel */
> 229 filename cmds DDE 'excel|system';
> 230 /* send command to Excel to save new worksheet */
> 231 data _null_;
> 232 file cmds ;
> 233 /* cannot use directories in specification of worksheet */
> 234 put '[file.save.as("temp.xls")]';
> 235 run;
>
> NOTE: The file CMDS is:
> FILENAME=excel|system,
> RECFM=V,LRECL=256
>
> NOTE: 1 record was written to the file CMDS.
> The minimum record length was 26.
> The maximum record length was 26.
> NOTE: The DATA statement used 6.66 seconds.
>
>
> 236 /* close Excel */
> 237 data _null_;
> 238 file cmd;
> 239 put '[file.save]';
> 240 put '[file.exit]';
> 241 /* disentagle SAS from the files for Excel system and worksheet
> */
> 242 filename cmds clear;
> NOTE: Fileref CMDS has been deassigned.
> 243 filename names clear ;
> NOTE: Fileref NAMES has been deassigned.
> 244
>
> NOTE: The file CMD is:
> FILENAME=c:\msoffice\excel\CMD.DAT,
> RECFM=V,LRECL=256
>
> NOTE: 2 records were written to the file CMD.
> The minimum record length was 11.
> The maximum record length was 11.
> NOTE: The DATA statement used 0.78 seconds.
>
>
> 245 proc fsview data=temp ;
> 246 run;
>
> NOTE: The PROCEDURE FSVIEW used 4.97 seconds.
>
> ------------------------------
>
> End of SAS-L Digest - 12 Jul 1996 - Special issue
> *************************************************
>
|