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 (April 2000, week 4)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Wed, 26 Apr 2000 08:17:11 -0400
Reply-To:     "Cowie, Helen" <hcowie@WVMI.ORG>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         "Cowie, Helen" <hcowie@WVMI.ORG>
Subject:      delete partial record only
Content-Type: text/plain; charset="iso-8859-1"

try setting those variable to missing or null or else you'll lose entire colums; example: if x=0 then var1=" " and var2=. and var3=.;

-----Original Message----- From: Automatic digest processor [mailto:LISTSERV@LISTSERV.UGA.EDU] Sent: Wednesday, April 26, 2000 1:00 AM To: Recipients of SAS-L digests Subject: SAS-L Digest - 25 Apr 2000 to 26 Apr 2000 (#2000-364)

There are 9 messages totalling 333 lines in this issue.

Topics of the day:

1. Contract Company Opinions? (2) 2. IMPORT Wizard: default directory 3. delete partial record only 4. proc SQL's quit tail 5. Save, Save, Save, Save... (2) 6. E-Intelligence Opportunities With Dot.Com Startups 7. Initialising array

----------------------------------------------------------------------

Date: Wed, 26 Apr 2000 01:05:06 GMT From: LUCID41 <lucid41@AOL.COMNOJUNK> Subject: Contract Company Opinions?

Is there a place were people can post opinions on various contract companies that work with SAS professionals?

Anybody have suggestions on how to get opinions? Express opinions? Remain Anonymous? Etc.?

------------------------------

Date: Wed, 26 Apr 2000 11:26:51 +1000 From: Dr Peter Baade <Peter_Baade@HEALTH.QLD.GOV.AU> Subject: Re: IMPORT Wizard: default directory

Bill,

Under the properties menu (when you right click on the SAS icon) you can indicate the default directory by putting the following in the "target" space.

"C:\Program Files\SASV8\SAS.EXE" -sasinitialfolder "c:\my sas files"

I think this changes the default for all "open" menus (programs etc).

Hope this helps.

Peter. Brisbane, Australia. ______________________________________________________ Does anyone know how to override the default directory that the WIN95 SAS v8 IMPORT Wizard goes to when selecting the Browse button in the "Where is the file located?" dialog box?

I tried setting the sasv8.cfg aliases -SASUSER , -SASFOLDER, and -WORK to the desired path but these didn't affect the IMPORT Wizard's default path.

Thanks in advance for any suggestions.

-Bill

------------------------------

Date: Tue, 25 Apr 2000 20:12:07 -0400 From: paula <icj808@USWEST.NET> Subject: delete partial record only

Now I know well if I do this

if x=0 then delete;

It will delete the whole recond if the condition is met.

How about I only want to drop several columns of the whole records? I will test

if x=0 then delete v2, v3, v29; Is this one of the right ways?

P. D

------------------------------

Date: Tue, 25 Apr 2000 20:16:00 -0400 From: paula <icj808@USWEST.NET> Subject: proc SQL's quit tail

Two weeks I saw a proc SQL that does exactly I wanted to do. So I copied it. It looks like this

proc sql; create table www as select v2, v3 from dw2.work23 quits;

Today I simply added an extra line of Where bmw = 301 at the end of the from clause. I got the error message obviously rejecting the existence of quit at the end. I did not see any discussion in the language manual. I deleted quit and put on Where clause and it works fine.

P. D

------------------------------

Date: Tue, 25 Apr 2000 20:09:34 -0400 From: paula <icj808@USWEST.NET> Subject: Save, Save, Save, Save...

I found SAs to be one of the worst applications in handling saving the .sas files.

When one .sas file is open on the screen, if I select another .sas, this file is immmediately attached to the end of the open .sas file. If I have one major merge step included, I ended up have the steps automatically run twice. I talked to SAS support. Yah, there is no way you can turn that off.

If I click on the blank icon to open a new .sas file, I have not found a way to turn off that hypocritical "Save changes.......?", even if I just saved the changes, it still asked the questions.

The worst of all is in about 10 out of 200 tries now, after I clearly remember to have saved, saved and saved the changes I made, SAS turns up unupdated copy of the .sas files. The worst case so far was I definitely saved changes two hours ago. After I restarted SAs and went to File to select the quick path pointer to the .sas file, it gave me a copy of 3 days ago. I just spent next hour to bring all the changes.

This is version 6.12 for Windows. As a computer consultant for two years and a full time working experience at a major software company, I believe I have used no fewer than 200 windows applications. This is the only application that behaves so whimscally in saving a simple file.

P. D

------------------------------

Date: Tue, 25 Apr 2000 22:30:27 -0400 From: Joe Whitehurst <joe@MEDIAONE.NET> Subject: E-Intelligence Opportunities With Dot.Com Startups

SAS-Lers,

Whitehurst Associates, Inc., a SAS Institute Quality Partner, is seeking SAS System Professionals for its SAS System based E-Intelligence Consulting Practice in Atlanta, Ga.. For more information, send your resume, compensation requirements and a cover letter detailing your understanding of E-Intelligence and why you are qualified to make contributions to our efforts to: eintelligence@whitehurst.dhs.org

Joe Whitehurst

------------------------------

Date: Wed, 26 Apr 2000 00:20:59 -0400 From: Tom Frenkel <taf2@IS8.NYU.EDU> Subject: Re: Save, Save, Save, Save...

Paula --

Yup. That's one reason why I almost never use interactive SAS ("diaplay manager"). Instead I run PC SAS in "batch mode". That is, I work in a DOS window (prehistoric I know), editing my SAS program w/ a good text editor (KEDIT). When I'm done editing, I go to the DOS prompt and type "SAS <program name>". The run creates files with the program name, and the suffixes .LOG (for SAS log) and .LST (for output listings if any). I use a DOS browser called LIST (also prehistoric) to view the .LOG and .LST files. Files are replaced each time, so things are much less likely to get messed up.

(I am talking about version 6 of SAS. The new version of SAS, version 8, might be friendlier in interactive mode.)

If you don't have a DOS editor or browser, you can do the same thing with Windows NOTEPAD. I.e. at DOS prompt type "NOTEPAD" <file name>.

Oh ... for this to work, SAS has to be in your "path". (What you see when you type the PATH command at the DOS prompt.) If this is unclear, you can hopefully find someone around who can give you a hand with it. Good luck,

--Tom Tom Frenkel <taf2@is8.nyu.edu> http://pages.nyu.edu/~taf2

> I found SAs to be one of the worst applications in handling saving the > .sas files. ...

------------------------------

Date: Wed, 26 Apr 2000 04:34:34 GMT From: Paul Dorfman <paul_dorfman@HOTMAIL.COM> Subject: Re: Initialising array

Ludwig,

SAS programmers have been asking SI for years now to implement a simple 'mass' move initializing an array that would spare us from going through all the buckets, but alas... Say if an array is called 'array' then a statement like

array = 123;

would initialize all the buckets to 123 at once. Note that I *do not* mean implementing something like

do i=lbound(array) to hbound(array); array(i)=123; end;

in the underlying software - that would present the same performance problems we already have. I actually mean a real 'mass move', when a field is declared an array and elementary item simultaneously, and the array can be intialized by moving a value to the elementary item as a whole.

Actually, given your particular situation and version (i.e., V8), you are lucky - because this functionality can be emulated using existing SAS means. As your entire array has 2500 items, each 8 bytes long, you can create a character string 2500*8=20000 bytes long containing the values the initialized array would contain, and move that entire string to the memory starting at the address of the first array item. In SAS words, if you have

array t(2500) _temporary_;

then before anything in the DATA step occurs, you can code

length plug $20000.; plug = repeat(put(1e16,rb8.),dim(t)-1); addr = addr(t(1));

and then initialize the entire array as

call poke (plug, addr, 20000);

That is it. Does this weird stuff provide any performance advantage over running through each bucket and sticking 1e16 there? Let's see. I tested the following under OS/390 V8:

1 data _null_; 2 array t (2500) _temporary_; 3 length plug $20000.; 4 plug = repeat(put(1e16,rb8.),2499); 5 addr = addr(t(1)); 6 do i=1 to 1e6; 7 call poke (plug, addr, 20000); 8 end; 9 run; NOTE: The DATA statement used 12.44 CPU seconds and 7663K.

10 data _null_; 11 array t (2500) _temporary_; 12 do i=1 to 1e6; 13 do j=1 to 2500; 14 t(j)=1e16; 15 end; 16 end; 17 run; NOTE: The DATA statement used 606.97 CPU seconds and 6864K.

It appears that the 'mass move' has some efficiency potential. You probably understand now how sorely I miss this kind of built-in functionality not limited to arrays having 32767 bytes, in all. 'Cause I've got to work with arrays much larger than that! I still use the above trick to shorten initialization time by moving 32760 chunks into an array instead of going bucket by bucket, but come on, let us face it - it is a kludge.

If you had a character array, the things would be subject to the same limitations, but the code would be much simpler, as then we would not have to convert a numeral into its real binary string image. Say if the array were declared as

array t(2500) $ _temporary_;

and we wanted to initialize each bucket to 'Ludwig', we would simply code

plug = repeat('Ludwig ',2499).

I hope the above make sense.

Kind regards, ===================== Paul M. Dorfman Jacksonville, FL ===================== >From: Ludwig Boltzmann <lboltzmann@HOTMAIL.COM> >Reply-To: Ludwig Boltzmann <lboltzmann@HOTMAIL.COM> >To: SAS-L@LISTSERV.UGA.EDU >Subject: Initialising array >Date: Tue, 25 Apr 2000 17:21:06 EDT > >Good sas-l folks: > >I'm reading a file of some 1 million obs and doing some array manipulation >on each obs. The array is created as > >ARRAY T(2500) _TEMPORARY_ ; > >Because of the way I manipulate data I must initialize the array for each >observation to some large number, e.g. > >DATA..... >SET..... >DO I=1 TO 2500 ; T(I) = 1E+16 ; END ; >........ >RUN; > >Although it works, I've found out that the initialisation takes almost as >long as the processing itself. Any ideas how to make it quicker? I'm >running >V8 on OS/390. > >Thank you in advance, >Ludwig > > > >________________________________________________________________________ >Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com

________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com

------------------------------

Date: Wed, 26 Apr 2000 04:49:57 GMT From: Michael K Countryman <mcountry@EARTHLINK.NET> Subject: Re: Contract Company Opinions?

I think that's a great idea. I would sure use something like that.

You never know what you're getting into until it's too late.

LUCID41 <lucid41@aol.comnojunk> wrote in message news:20000425210506.24066.00000579@ng-fy1.aol.com... > Is there a place were people can post opinions on various contract companies > that work with SAS professionals? > > Anybody have suggestions on how to get opinions? > Express opinions? > Remain Anonymous? > Etc.?

------------------------------

End of SAS-L Digest - 25 Apr 2000 to 26 Apr 2000 (#2000-364) ************************************************************


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