Continuous Reboot Message when Installing SAS 9.2 and EG 4.2
During the SAS 9.2 Deployment Wizard I was continually getting a message saying I had to reboot the machine. After rebooting 3 times I new something was up. Some searching on support.sas.com revealed the following fix:
- Locate HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager in the registry.
- If it contains FileRenameOperations or PendingFileRenameOperations, delete this key, and retry the SAS installation.
- Always make a backup of your registry before making changes
Sure enough this worked. I didn't even bother rebooting the machine at all, I simply deleted the registry key and continued with the installation.
Jared Prins now on SAS Community Planet
Sw33t.... SAS Community Planet, a rollup of SAS user blogs, has included my blog in their rollup.
I really like the setup of the Planet page because at a glance you can see what a few of the other SAS users out there are working on or playing with. Nice work SASCommunity.org!
Online Resume Building for SAS Users
The SAS Tech Editor put a call out to SAS users to be make their skills visible on the web. Not that this is specific for SAS Users, but a great tool a SAS user could use for building an online portfolio is VisualCV. VisualCV has reinvented the resume. Best of all, it's free and is loaded with options.
Traditional resumes are almost dead. Nowadays it seems you need that extra flare to get your foot in the door. My recommendation would the same as Waynette prescribes but with a twist:
1: Be visible to the community by going to conferences, seminars, user group meetings and the like.
2: Be visible by participating online through outlets such as Twitter, LinkedIn, Facebook, Blogging or just participating by posting content on SAScommunity.org or writing SAS papers.
3 (the Twist): Have a place on the web that you can call your own. Whether it is a blog or VisualCV, let it be this personal HQ be a portal where you collect, share, or link to your thoughts, experiences, and deliverables (i.e. SAS papers, code snippets, research papers).
In this day and age I'd argue there is no excuse for NOT maintaining an online presence. In fact, I'd argue that if a future employer can't find you on the internet, they would think you don't exist...
Part of the reason for keeping an online presence is to watch if anything "bad" is being said about you. If you use Facebook, you can also scan for "bad" images of you that your buddies post on Facebook. It's impressive technology. Read about it here.
Review of SAS Course: Mining Textual Data Using SAS Text Miner for SAS9
You may recall awhile back I wrote about my disappointment in availability of SAS Text Miner course offerings and options in Canada. My prayer was anwered when SAS was able to fly Terry Woodfield, a Text Mining expert, to train myself and a few others in SAS Enterprise Miner and Text Miner. This 3 day course was invaluable.
Good courses leave one feeling familiar with the material. Great courses leave one feeling comfortable with the material. The best courses will leave the student feeling comfortable and empowered with the material. This SAS course did just that.
I remember the first time I opened Enterprise Miner. It was overwhelming to see the amount of options available. My thoughts were "What did I get myself into??". But after taking the course I'm suddenly like an 8 year old boy on Christmas Eve that can't wait to open his presents - I can't wait for Monday to get into the office and fire up Enterprise Miner!
I'd attribute the empowerment to the meaningful class discussions, the Teacher sharing real-life examples, and the in-class demonstrations which:
- Helped provide a deeper understanding of Text-Mining concepts, how to expore data, and what to expect when exploring my own data
- Fired my imagination for new ways of using my organizations data
- Made me realizing we have sources of information that were not previously considered as analyzable information.
Terry is an excellent teacher and if you ever have the chance to take a course he is teaching - do it. I don't think you'll regret it because the course notes, although wonderfully detailed and easy to understand, does not replace a good Teacher like Terry to expedite your learning.
One other item I'd like to address is in regards to the Tech side of the course. Thank you SAS tech gurus! Being provided with the ability to remotely log into a workspace with all of the couse notes, data, and software is a tremondous help. It was very professionally done and worked wonderfully.
SAS courses are worth every penny.
Show all possible values in table regardless of whether or not the value exists
Here are two solutions when creating a table to show responses to a questionnaire where respondents rate items in various categories. In this case, the responses range from 0 to 5 (N/A, Very Poor, Poor, Average, Good, Very Good).
Given the following Data:
data test;
input var1 var2 var3;
datalines;
. 2 .
. 2 1
0 2 1
0 2 1
1 2 1
1 2 1
1 3 1
3 3 5
3 3 5
3 3 5
3 4 5
3 4 5
5 4 5
;
run;
Solution #1: Proc Tabulate (http://support.sas.com/techsup/technote/ts278.html)
data dummy;
input var1 var2 var3;
cards;
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
;
run;
proc format;
value var_fmt
0="N/A"
1="Very Poor"
2="Poor"
3="Average"
4="Good"
5="Very Good"
;
run;
quit;
data joined;
set test(in=is_valid) dummy;
if is_valid then valid=1;
run;
%macro doit;
%DO I=1 %TO 3;
proc tabulate data=joined format=8.;
class var&I;
var valid;
tables var&I, valid=' '*n=' '
/ rts=22 misstext='0';
title 'Title Here';
format var&I var_fmt.;
label var&I="Var&I Label Here";
run;
%END;
%mend;
%doit;
Solution #2: Proc Summary + Proc Freq Combo (http://groups.google.ca/group/comp.soft-sys.sas/browse_thread/thread/eba82d9c5c37bb71?hl=en)
proc format;
value var_fmt
.="Missing"
0="N/A"
1="Very Poor"
2="Poor"
3="Average"
4="Good"
5="Very Good"
;
run;
quit;
proc summary nway completetypes missing;
class var1--var3 / preloadfmt;
format var1--var3 var_fmt.;
output out=count(drop=_type_);
run;
proc freq data=count;
tables var1--var3 / list nocum;
format var1--var3 var_fmt.;
weight _freq_ / zeros;
run;
Solution #2 is not CPU efficient. It works fine the small TEST dataset, but if you have many vars or observations, consider creating a macro do loop just like in solution #1.
When I ran the solution #2 against a dataset with 10 vars and 200 observations, it took about 8 minutes to run and created a dataset of around 6.8 million records! Ouch!

