I've written to these folders before, so folder permission can't be the issue. Likewise, the macro function works if I run it one case at a time. It just does not work from within them loop. As a follow up, I successfully ran the code on my desktop at school. The desktop uses Windows XP. So, either the problem lies with running SAS in Vista or the fact the my temporary files are written to one drive while my code resides in another drive.
Can someone running SAS 9.1.3 with Service Pack 4 running on Vista Business and who has not partitioned their drives please test the code for me. If the code runs correctly, you should find a file called Lambdas in the Loc folder. Make sure to open the file to make sure it has data. The code creates an empty file when it fails to run. There should be 68 cases in the file.
If the code runs correctly, it will suggest that the problem may be with the partitioning. I'm assuming that I installed SAS correctly. I did not get any errors when I installed it and have run numerous other sas programs without problems for the two months.
----- Original Message ----
From: Carol Bristow <Carol.Bristow@dpra.com>
To: Cristian Gugiu <crisgugiu@YAHOO.COM>; SAS-L@LISTSERV.UGA.EDU
Sent: Monday, April 28, 2008 7:02:05 PM
Subject: RE: Re: SAS code works on laptop but not on workstation
Since Vista has tighter security than XP, and that's the version with problems, you might want to check on the permissions on the folders where you are trying to write data. You may have more rights on XP.
1655 N. Ft Myer Dr Ste 925
Arlington, VA 22209
From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU] On Behalf Of Cristian Gugiu
Sent: Monday, April 28, 2008 6:55 PM
Subject: Re: SAS code works on laptop but not on workstation
Thank you for your questions Dan. I am running Windows XP on my laptop and Vista Business on my workstation. I am running SAS 9.1.3 on my laptop and workstation. However, the workstation has Service Pack 4 installed, which allows it to work with Vista Business. I have liscences copes of all the components I am working with for both computers. (The one nice perk of being a grad student.)
The problem seems to be that the code running on my laptop (which is identical to the code running on the workstation, except for the libnames) is able to create a permanent dataset. This dataset is generated by appending individual outputs generated by Proc IML. When I run the code from the workstation, it appears to run IML (judging from the output) but it is not creating and/or appending a temporary dataset. Making things more confusing is that if I run the macro function (which contains my IML code) individually, the code runs fine (meaning if creates the temporary dataset) on the workstation. However, when I run the macro function as part of a loop, it generates the right output but does not save a dataset.
There are a couple of errors that appear in my log. One of them, if not both, pertain to submitting values for skewness and kurtosis that are invalid. For theoretical reasons, kurtosis>Skewness**2 - 2. So, several of the combination of skew and kurt that I am submitting are invalid. As a result, I abort the IML and get an error in the log. I just ignore this statement because all it means was that IML was not able to produce lambda values for the values I submitted. I probably should put the check inside my loop rather than in IML.
The second error that I see is that macro vars do not like negative numbers. I've tried to resolve this with %sysevalf and %quote but neither cured the problem. This may also be connected to the theory issue I mentioned above because it some instances it runs the code despite negative values for skewness. I don't think the main problem is that it is not saving a temporary dataset. Consequently, there is nothing to append to the permanent file. What is bizarre is that if I run the macro function that generates my lambdas as a single line of code, it runs fine. It's only when I embed it inside a loop that I get a problem. But why would it work on my laptop? The code is the same except for the libname references.
The only other differences that I can think of is that my workstation is 2-3 faster than my laptop. Do I need to add a delay in my code because the workstation is processing the loop faster than that macro function located in the loop? Second, my workstation saves temporary dataset on a different drive (D-drive) than the sas code (C-drive). The reason for this partition is to improve SAS' efficiency.
I'll post the full code in the following email.
----- Original Message ----
From: "Nordlund, Dan (DSHS/RDA)" <NordlDJ@dshs.wa.gov>
To: P. Cristian Gugiu <crisgugiu@YAHOO.COM>; SAS-L@LISTSERV.UGA.EDU
Sent: Monday, April 28, 2008 5:49:47 PM
Subject: RE: SAS code works on laptop but not on workstation
> -----Original Message-----
> From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU] On
> Behalf Of P. Cristian Gugiu
> Sent: Monday, April 28, 2008 12:37 PM
> To: SAS-L@LISTSERV.UGA.EDU
> Subject: SAS code works on laptop but not on workstation
> Hi all. I've written SAS code to create a table that contains output
> statistics that I need to use in a later analysis. I wrote
> the code on my
> laptop but need to migrate the code to my workstation. What
> is bizarre is
> that the code works perfectly on my laptop but not on my
> workstation. I've
> checked my reference libraries but that does not appear to be
> the case.
> The only difference that I can think of between the two PCs is OS (one
> runs XP the other runs Vista Business). However, I migrated
> programs back-
> n-forth between the two PCs without problem before. The only other
> difference is that the workstation saves temporary datasets
> to the D-drive
> and runs the code from the C-drive. Not sure if this may be the issue
> given that the libnames were correctly assigned.
> I was wondering if someone would be kind enough to run the
> code on their
> PC and see if they can spot the issue. The code is about 200
> lines long so
> it's too long to post. Also, you will need to be able to run Proc IML.
> Please email me if you are able to lend me a hand.
> Deeply appreciative,
You are more likely to get useful help if you told us what "the code works perfectly on my laptop but not on my workstation" actually means. Did the code run without error but not produce an output dataset or produced an incorrect dataset? What errors, warnings or or notes were produced in the log? You said the "only" difference between the two systems was the OS (Win XP and Vista), but you didn't tell us which system had which OS. Vista is not yet "officially" supported on Vista (although many have run SAS on Vista successfully, others have had problems). Have you checked to see that all the same SAS components are licensed/installed on both machines?
So, a little more detail about what you are doing and what errors occurred would help us help you.
Hope to be more helpful next time around,
Daniel J. Nordlund
Research and Data Analysis
Washington State Department of Social and Health Services
Olympia, WA 98504-5204