HDTenEightyP/NetNews huggingface dataset:
Newsgroups: bit.listserv.sas-l
Date:         Wed, 19 Aug 1992 15:27:00 GMT
Reply-To:     Steve Doig <0005038929@MCIMAIL.COM>
Comments:     <Parser> W: Field "Resent-cc:/cc:" duplicated. Last occurrence
              was retained.
From:         Steve Doig <0005038929@MCIMAIL.COM>
Subject:      Re: SAS datasets ====> .wks
Comments: To: Greg Nelson <GNELSON%UGA.BITNET@vtvm1.cc.vt.edu>
Comments: cc: Multiple recipients of list SAS-L <SAS-L@vtvm1.cc.vt.edu>

Greg asked about transfering data from SAS datasets into a spreadsheet. I
frequently take data out of SAS datasets I've created on our mainframe (MVS, SAS
v5.18) and suck it into Lotus 123 spreadsheets on my PC for further analysis. I
do it by writing the data I want into an ASCII file using PUT statements, then
importing the ASCII file into Lotus using the /Data-Import-Numbers command. Just
make sure you PUT quote marks on either side of string variables. For example:
   DATA _NULL_;
   SET mydata;
   FILE asciifile;
   PUT @1 '"' stringvar1 '"'
              numvar1
              numvar2
          '"' stringvar2 '"'
              numvar3
              ...etc;
If you FORMAT your numerical variables, don't use formats like COMMMw.d or
DOLLARw.d. Do that kind of formatting in Lotus instead.

I am sure there are more elegant ways of doing a SAS==>LOTUS conversion (indeed,
I posted this suggested approach to the list in hopes of learning some better
ways myself.) However, this way works quite well.
==================================================================
+ Steve Doig                     e-mail: 5038929@mcimail.com     +
+  Associate Editor/Research       voice: 305-376-3476           +
+   The Miami Herald                  fax: 305-376-2287          +
+    One Herald Plaza                                            +
+     Miami, FL  33132        "All the news that fits, we print" +
===================================================================
Organization: University of Illinois at Chicago
Date: Wednesday, 12 Aug 1992 09:12:21 CDT
From: Francine Cannarozzi <U58664@uicvm.uic.edu>
Newsgroups: bit.listserv.sas-l
Subject: SAS GRAPH Plot Question

I have two variables to plot, and I'd like to overlay the outline of
a normal curve on the plot.  Does anyone have an example of how to do
this?  We're using SAS 6.07 on CMS. Thanks in advance for any
suggestions.

Francine Cannarozzi
Senior Research Specialist
School of Public Health
University of Illinois at Chicago
Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
Mailer: Elm [revision: 66.25]
Newsgroups: bit.listserv.sas-l
Date:         Sat, 15 Aug 1992 19:26:01 METDST
Reply-To:     Svend Bang <svend@CRG.DK>
From:         Svend Bang <svend@CRG.DK>
Subject:      Re: Any EDP, Internal Auditors Out There?

> -----------------------------------------------------------------------
> CONTENT:    question regarding use of SAS
> SUMMARY:    use of SAS for edp, internal audit
> REL/PLTF:   all
> E-ADDR:     0002395748@mcimail.com
> P-ADDR:     BC&BS OF Conn., 370 Bassett Road, North Haven, CT 06473
> PHONE:      (203)-985-7187
> FAX:        (203)-985-7030
> -----------------------------------------------------------------------

>
> Also, one of the attractive features of their current 4GL is that they
> licensed a series of short programs that perform sample extraction.
> While all of these programs could be recoded in SAS, SAS would be
> more attractive to them if they could find some of their required
> routines already coded.
>
> Do any of you have sampling routines that you would be willing to
> share with our internal auditors?
>

Try to read Chapter 12, Taking Random Samples, in Language & Procedures
Usage 2, Order# 56078. It is a rewrite of the old Applications Guide.
It tells all there is to tell!
--
------------------------------------------------------
Svend Bang, Tel +45-3526 8866, Night tel +45-3526 0466
E-mail: svend@crg.dk - EARN/BITNET: CRGSBA at NEUVM1
Danish Cancer Registry, Box 839, DK-2100 Copenhagen
Denmark                        Fax: +45-3526 0090
Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
Resent-Organization: Marist College
Mailer: VM 5.32 (beta) for GNU Emacs 18.57.6
Newsgroups: bit.listserv.sas-l
Date:         Mon, 17 Aug 1992 18:08:54 EDT
Reply-To:     "A. Harry Williams" <HARRY@VM.MARIST.EDU>
Comments:     Resent-From: "A. Harry Williams" <HARRY@VM.MARIST.EDU>
Comments:     Originally-From: Olle Andren
              <Olle.Andren%emc.slu.se@VM.MARIST.EDU>
From:         "A. Harry Williams" <HARRY@VM.MARIST.EDU>
Subject:      SAS question ETS/MODEL
Comments: To: sas-l@VM.MARIST.EDU

I'm forwarding this onto the list.

----------------------------Original message----------------------------
/*
Help me. I am new to SAS/ETS and have the problem described below

TEST OF PROC MODEL (SAS/ETS) ON FAKED LITTER DECOMPOSITION DATA -
WITH CLIMATE CORRECTION

The model uses 'radioactive decay', i.e.: dM/dt=M*-k, with a climate
modification factor: dM/dt=M*-k*MODFAC. Since MODFAC is a variable,
'driving variable', simulation techniques are necessary.

Without MODFAC, the model can be fitted with proc NLIN (or MODEL) to
data, when transformed to: M(t)=M(0)*exp(-k*t).

With MODFAC, the transformed function contains an integral, which is not
possible (?) to feed into SAS.

In any case, more complex ecological models need to be (?) entered in
proc MODEL as difference equations:

M=lag(M)+lag(M)*-k*MODFAC.

This seems to work reasonably well; see example WORKS below.

However, we usually have daily values for MODFAC, but only a few
measurements of M. With other simulation packages, a predicted M is
calculated for each day during the fitting process, which gives the
correct k. So far, proc MODEL refuses to do this when I attempt the FIT
command.

So:
1) Is this the simplest way to enter a differential (difference) equation of
this type?
2) How can I get the model to calculate predicted values even during days
when M is missing? (Some iterative combination of solve and fit?)

Olle.Andren@emc.slu.se

*/
options pagesize=24 noovp;
TITLE1 'COMPLETE DATA';
DATA IN;
        INPUT DAY M MODFAC;
        M=M/100; MODFAC=MODFAC/10;
        CARDS;
 1 99 5
 2 97 4
 3 97 7
 4 90 4
 5 87 5
 6 80 7
 7 73 8
 8 70 9
 9 56 7
 10 54 5
 11 50 4
 12 45 3
 ;

DATA HOLE; SET _LAST_; *DELETE M TO CREATE A MORE REALISTIC DATA SET;
        IF DAY GE 2 AND DAY LE 4 THEN M = .;
        IF DAY GE 6 AND DAY LE 8 THEN M = .;
        IF DAY GE 10 AND DAY LE 11 THEN M = .;

RUN;


TITLE1 'NLIN TEST WITHOUT DRIVING VARIABLE';
*PROC NLIN DATA=HOLE;
*        PARMS K=0.01;
*        MODEL M=EXP(-K*DAY); *JUST M AND TIME;

RUN;


TITLE1 'MODEL OUTPUTS'; RUN;

PROC MODEL data=in;
        VAR M 1 MODFAC 1; PARAMETER K 0.1; CONTROL DT 1; ID DAY;
        M = LAG(M)+LAG(M)*(-K*MODFAC*DT); *MODEL EQUATION;
        FIT M START=(K 0.1)/DATA=IN ITPRINT converge=1E-10
	out=noholes outpred outact; *WORKS;
*        FIT M START=(K 0.1)/DATA=HOLE ITPRINT converge=1E-10; *NO WORK;
*        SOLVE M/ DATA=HOLE OUT=solved outall;
	*WORKS - BUT NEEDS CORRECT K;
RUN;

data fixit; set _last_;
	if _type_ = 'PREDICT' THEN pm=m;
	if _type_='ACTUAL' THEN AM=M;
PROC PLOT;
	PLOT AM*DAY='A' PM*DAY='P' /OVERLAY;

RUN;



/* olle@emc.slu.se */
Organization: The American University - University Computing Center
Date: Wednesday, 12 Aug 1992 09:32:51 EDT
From: QingHua zhao <ZHAO@auvm.american.edu>
Newsgroups: bit.listserv.sas-l
Subject:    TABULATE->Lotus will be delivered at 8/14.

Dear friends:
   TABULATE output to Lotus spreadsheet converting program will be
delivered on this friday, Aug,14,1992. I will send UUENCODE file
to all of you who responded to me.
   Thank you for participation.

QingHua Zhao
Aug,12,1992
Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
Newsgroups: bit.listserv.sas-l
Date:         Wed, 12 Aug 1992 16:00:00 PDT
Reply-To:     Melvin Klassen <KLASSEN@UVVM.BITNET>
Comments:     Warning -- original Sender: tag was NETNEWS@UVVM.UVIC.CA
From:         Melvin Klassen <KLASSEN@UVVM.BITNET>
Subject:      Re: Numeric precision

Lary Jones <LJONES@BINGVMB> writes:
>However, the following twist on Kernon Gibe's original program
>illustrates my second point that SAS _will_ represent a number to as many
>digits as possible, even if anything after the first N digits is garbage.
>It is merely an illustration to serve as a caveat for unwary users.

You must remember that we learned to count in base-10 arithmetic
in elementary school, while computers count using base-2 arithmetic.
In this case, those digits are **not** garbage!

        data precise;
          length        x2 2  x3 3  x4 4  x5 5  x6 6;
          array xx {*}  x2    x3    x4    x5    x6;
          do _i = 1 to 11;  drop _i;
             do _j = 1 to dim(xx);  drop _j;
                xx{_j} = 22.0/_i * 10**_i;
                end;
             output;
             end;
          stop;
          ;run;
        proc print;run;

 ---- edited LISTING output follows ----
> OBS  X2           X3           X4           X5           X6
>  10  21743271936  21999124480  21999996928  21999999984  21999999999.94
The hexadecimal values corresponding to the above decimal numbers are:
         510000000    51F400000    51F4D5000    51F4D5BF0    51F4D5BFF.FF
and
>  11 197568495616 199984414720 199999946752 200000000000 200000000000
        2E00000000   2E90000000   2E90ED0000   2E90EDD000   2E90EDD000

As you can see, only **four** non-zero bits ('00101110'B == '2E'X),
with a large exponent (16**8) can produce a lot of base-10 digits.

There is no "garbage" in these decimal representations!
Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
Return-Path: <ratajczak@a1.relay.upenn.edu>
Msg-Class: ALL-IN-1 V2.3 BL8-4 Rev. AAC 20-Dec-1988
Newsgroups: bit.listserv.sas-l
Date:         Thu, 20 Aug 1992 16:01:01 -0400
Reply-To:     "Lori Ratajczak" <ratajczak@A1.RELAY.UPENN.EDU>
From:         "Lori Ratajczak" <ratajczak@A1.RELAY.UPENN.EDU>
Subject:      can 5.18 read 5.16 files?

CONTENT:  question
SUMMARY:  Can SAS 5.18 read/write to files created under SAS 5.16?
REL/PLTF: SAS 5.16 and 5.18/MVS
E-ADDR:   ratajczak@a1.relay.upenn.edu
NAME:     Lorraine Ratajczak
PH/ADDR:  (215) 898-9946/Univ. of PA, 3401 Walnut, Phila., PA 19104

We're running BDBF, a purchased package that uses SAS to generate the bills
we send to our mainframe users.  It interfaces with SAS 5.16 at the moment.
When we installed our 3390 DASD in March, we applied several SAS zaps, but
we found out today that apparently there's one more we need.  Unfortunately,
the needed zap exists for 5.18, but not for 5.16.  While we've been planning
to change from BDBF to MICS (which I hear uses SAS version 6), we're nowhere
near ready to make the move.  It looks like I'll be installing SAS 5.18 soon.

Knowing that SAS 6.07 cares whether a SAS data file was created under 6.07,
6.06, or ver. 5, I figured I should ask if SAS 5.18 can handle files
created under SAS 5.16.  Can it?  Would I have to do anything special for
it to work, or is it just like 5.16?

While I'm asking questions, here are some more.  I've installed SAS 6.06 and
6.07, but not version 5.  Any advice?  About how long does a 5.18 install
take (including applying zaps)?  Can the 5.18 options be set the same as in
5.16?  Any "gotcha's"?

Thanks in advance for your help!
--
Lorraine Ratajczak, U.M.I.S., University of Pennsylvania
voice:  215-898-9946   fax:  215-898-0386
Internet:  ratajczak@a1.relay.upenn.edu
running SAS 5.16 under MVS/ESA; easing into SAS 6.07
Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
Newsgroups: bit.listserv.sas-l
Date:         Thu, 20 Aug 1992 13:55:16 -0500
Reply-To:     Kernon Gibes <gibes@SWIRL.MONSANTO.COM>
From:         Kernon Gibes <gibes@SWIRL.MONSANTO.COM>
Subject:      RE: Subsetting data set
Comments: To: SAS-L@uga.cc.uga.edu@tin.monsanto.com
Comments: cc: GIBES@tin.monsanto.com

 CONTENT:   Response (to subsetting to baseline data)
 SUMMARY:   May be able to use special order of data to do subsetting
 REL/PLTF:  na/na
 E-ADDR:    gibes@swirl.monsanto.com
 NAME:      Kernon Gibes
 DATE:      20 August 1992

Howard S.'s suggestion is fine.  But I noticed that it appears that the
baseline data for a given ID always appears together and before the
non-baseline data.  ***IF*** this is ALWAYS true, one might be able to
exploit this structure as indicated below.  Note that the code won't
work at all unless this is true: baseline values together for each ID
*AND* baseline values before the non-baseline data *AND* baseline data
separated from non-baseline data by at least one other ID!  This is all
true in the example data, but perhaps not in the real data set.

Original, example data:

          ID     DATE    VAR1  VAR1  VAR3........
          101    8/10/90  1     2     3
          101    8/11/90  2     2     1
          101    8/12/90  1     1     2
          102    5/1/91   1     1     3
          102    5/3/91   2     3     3
          103    8/5/91   3     3     1
          103    8/7/91   1     1     1
          101    8/4/91   3     3     2
          101    8/5/91   2     2     3
          103    8/1/92   1     1     1
          107    10/1/90  1     2     2
          107    10/3/90  2     3     1
          102    4/29/92  3     2     1
          102    4/30/92  2     2     2
          104    6/23/90  3     3     3
          104    6/24/90  3     1     2
          104    6/26/90  1     2     3

___ SAS program ________________________________________________________

data temp;
  set test;
  by notsorted id;
  if first.id then idgrp+1;
run;

proc sort data=temp;
  by id idgrp;
run;

data baseline;
  retain flag;
  set temp; by id idgrp;
  if first.id then flag=1;
  if flag then output;
  if flag and last.idgrp then flag=0;
 drop idgrp flag;
run;

proc print;
run;

___ end of SAS program _________________________________________________

which yields:

___ SAS Listing ________________________________________________________

             OBS     ID     DATE      VAR1    VAR2    VAR3

               1    101    8/10/90      1       2       3
               2    101    8/11/90      2       2       1
               3    101    8/12/90      1       1       2
               4    102    5/1/91       1       1       3
               5    102    5/3/91       2       3       3
               6    103    8/5/91       3       3       1
               7    103    8/7/91       1       1       1
               8    104    6/23/90      3       3       3
               9    104    6/24/90      3       1       2
              10    104    6/26/90      1       2       3
              11    107    10/1/90      1       2       2
              12    107    10/3/90      2       3       1
Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
Newsgroups: bit.listserv.sas-l
Date:         Sat, 15 Aug 1992 14:47:40 -0500
Reply-To:     Kernon Gibes <gibes@SWIRL.MONSANTO.COM>
From:         Kernon Gibes <gibes@SWIRL.MONSANTO.COM>
Subject:      RE: SAS GRAPH Plot Question
Comments: To: SAS-L@uga.cc.uga.edu@tin.monsanto.com
Comments: cc: GIBES@tin.monsanto.com

 CONTENT:   Response to "SAS Graph Plot Question"
 SUMMARY:   See vol 1, No. 2 "Observations" pg. 55... **IF** normality
            probability plot was the object.
 REL/PLTF:  6.06+/ n.a.
 E-ADDR:    gibes@swirl.monsanto.com
 NAME:      Kernon Gibes
 PHONE:     (708) 506-2873
 DATE:      15 August 1992

Regarding:

> I have two variables to plot, and I'd like to overlay the outline of
> a normal curve on the plot.  Does anyone have an example of how to do
> this?  We're using SAS 6.07 on CMS. Thanks in advance for any
> suggestions.
>
> Francine Cannarozzi
> Senior Research Specialist
> School of Public Health
> University of Illinois at Chicago
>

I don't know if Karsten Strobek answered this question (the subject line
was "Re: SAS GRAPH Question" and showed a use of an OVERLAY option but
also a bunch of label annotation stuff not apparently related to this
question?  I suspect I lost track of a thread(s) when our network was
down.)

By "normal curve" do you mean the bell-shaped distribution curve, the
CDF, or a normal probability line?  For the latter, the First Quarter
(volume 1, number 2) issue of "Observations" (tm), pgs. 55-57 discusses
ways to do a normal probability plot, one of which uses PROC CAPABILITY
(part of SAS/QC).  If you wanted the bell, then perhaps(?) you're doing
a histogram, in which case CAPABILITY's HISTOGRAM statement will do
superimposed theoretical distributions (including the normal).  There is
also a CDFPLOT statement, but I doubt you were talking about that.
Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
Newsgroups: bit.listserv.sas-l
Date:         Fri, 21 Aug 1992 13:16:22 EST
Reply-To:     Upson <SVUPSOR@VCCSCENT.BITNET>
From:         Upson <SVUPSOR@VCCSCENT.BITNET>
Subject:      modest suggestion

CONTENT: Proposal
SUMMARY: Let's change the list a little
REL/PLTF: all sas-l
E-ADDR:   svupsor@vccscent.bitnet
NAME:     Bob Upson
PH/ADDR:  804-736-8484 Rt1 Box 15 Keysville, Va. 23947

Gang,
    Just read the beginning of a note posted to sas-l and disposed of it
(I think "flushed" is the term), but the notion of sending our resumes to
the list is intriguing. What do you think of changing the name to "Person-L"?
Btw, I don't think that I myself will be able to read all 1200 of them, could
someone post a summary? Tia, Bob.
From: tamara@glia.biostr.washington.edu (tiny t)
Newsgroups: bit.listserv.sas-l
Subject: Re: SAS/PC 6.04 --> SAS/CMS 6.06
Date: 18 Aug 92 02:09:15 GMT
Organization: Dept Biological Structure-University of Washington

B
>In reply to:
B
>> analyzed using Version 6.06 under CMS.  What is the best way to convert
>> the SAS data sets so they can be used with Version 6.06?
>>
>> Dan Jacobs, Ph.D.                 BITNET: DAN@UMDC
>Dan,
>PROC CPORT and PROC CIMPORT provide a straight forward way of moving the data.
>Also, if you are connected via Micro-to-Host Link on the PC and SAS/CONNECT
>on the mainframe, you may use PROC UPLOAD.
>
>
While PROC CPORT/CIMPORT might seem straightforward it has disadvantages,
as does SAS/CONNECT. If you are only going to be dealing with 
DATA-type datasets then I would strongly suggest you use PROC
COPY. It has simple syntax and is "downwardly" compatible. That is,
you can convert a 6.06 dataset using CMS 5.18. this is not true of
PROC CPORT. SAS/CONNECT is nice, since you don't have to worry
about the right electronic process. 

Actually (come to think of it) nothing has been very straightforward
when it comes to moving SAS datasets. What is important though is
consideration of all the advantages and disadvantages of the different
transfers. I'm going to try to cover this in my next SUGI paper.
When I write the paper I will try and convert it to ASCII and post.

Meanwhile, I'd be glad to help if you need more specific information.

Tamara
-----
Tamara@glia.biostr.washington.edu
(919) 933-6404
Independent Consultant-Timely Technical Solutions
>Bob Snyder, Texas Instruments, Sherman, TX
Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
Newsgroups: bit.listserv.sas-l
Date:         Fri, 14 Aug 1992 16:39:30 EST
Reply-To:     Evan Cooch <ECOOCH@PENNSAS.UPENN.EDU>
From:         Evan Cooch <ECOOCH@PENNSAS.UPENN.EDU>
Subject:      SAS/DOS on RISC 6000
Comments: To: sas-l%marist.bitnet@cunyvm.cuny.edu

I may have missed something, but if you have the money for the 6000, then you
obviously have enough to (a) buy a 50 Mhz - 486 and (b) the 32-bit incarnation
of SAS which will come out soon. Given that you can buy a hot rod 486-50 for
 <3000, and the price of OS/2 2.0 SAS will be <2000, and that the 6000 is 10K,
that would leave you with 5k or so for other fun toys. 32-bit SAS for OS/2 2.0
really boogies...at least 4 times faster than 6.04 for DOS on ANY platform.

Sure, the 6000 is great, but wait until you see how much everything else costs.
Further, I've used SoftPC on one, and performance of DOS apps under it is
equivalent to a 386SX-20 (based on my benchmarks).

Wish I was "broke" enough to consider buying a 6000! :-)

           _///_              +----------------------------+
           -. .-              |       Evan G. Cooch        |
           ( L )    \////     |   Department of Biology    |
         --(\=/)--  (   )     | University of Pennsylvania |
        /         \ /  /      | Philadelphia, Pennsylvania |
        I          V  /       |   Phone: (215) 898-7129    |
        I            /        |     FAX: (215) 898-8780    |
        I           /         |  ECOOCH@PENNSAS.UPENN.EDU  |
                              +----------------------------+
Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
Newsgroups: bit.listserv.sas-l
Date:         Wed, 19 Aug 1992 12:12:12 PDT
Reply-To:     Melvin Klassen <KLASSEN@UVVM.BITNET>
Comments:     Warning -- original Sender: tag was NETNEWS@UVVM.UVIC.CA
From:         Melvin Klassen <KLASSEN@UVVM.BITNET>
Subject:      Re: does 6.07 need more quota than 6.06 or else? Please help.

Deborah Cannon 319-335-6321 <ADPDKHTS@UIAMVS> writes:
> Whatever, the details of the problem, you need more WORK space.
> In my (humble, of course) opinion, your job is not that big
> and the WORK dataset size should be adjusted ...
>
Let's take a closer look at the diagnostic messages in the SASLOG file.
! NOTE:    The data set WORK.MAT has 171020 observations and 119 variables.
! ERROR:   Insufficient space in file WORK.MAT.DATA.
! WARNING: The data set WORK.MAT may be incomplete.  When this step
!          was stopped there were 91691 observations and 120 variables.
! WARNING: Data set WORK.MAT was not replaced because this step was stopped.

Let's (optimistically) assume that all 119 numeric variables were defined
using a 'LENGTH <varname> 4' declaration.
Then, each case will require a minimum of 4*119 bytes,
and the 'MAT' member will require a minimum of 81,405,520 bytes.

Note that the second step of the SAS program tried to "replace" the member,
i.e., with code like:
    DATA WORK.MAT; SET WORK.MAT; VAR120=.; RUN;
which creates the 120th variable (and possibly massages other variables).

The presence of this second DATA step means that the 'WORK' library will
(temporarily) require enough disk-space for **two** copies of the member.
It would be certainly be more efficient if the code in the second DATA step
could be merged into the first DATA step -- it certainly would be faster,
require much less disk-space, and do less disk I/O!

Since one track of an IBM 3380 disk can hold at most 47476 bytes,
this SAS program will need a minimum of 2*81405520/47476 bytes,
i.e., 3429 tracks (equivalently, 236 cylinders) of disk-space.
Note that an IBM 3380 disk contains 885 cylinders per mechanism,
so this estimate is almost 26% of a complete volume.
(I wonder what other DATA steps are part of the user's program!)

Of course, if the user did **not** use any 'LENGTH' statements,
then you'll need to double my estimates!
Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU