After almost 32 years, I am retiring from SAS. Wow! This has been my entire professional life! I officially started at SAS on May 1, 1987. For the three preceding years, I had been developing SAS procedures as part of a contract between SAS and my UNC doctoral adviser, Forrest Young. The year before that I worked at a user service desk at UNC, primarily answering SAS questions. For the two years before that, I was the teaching assistant for a UNC class that taught, SAS, JCL, and TSO. Sometimes, I write SAS code in my sleep! I first used SAS in 1979 when I was a first-year graduate student at UNC. Dick Helwig (husband of SAS cofounder Jane Helwig) was my instructor.
When I started at SAS in 1987, we did not have email or internet and no one ever heard of blogging. My how things have changed! During my student days, I wrote a label plotting procedure in Version 5. Does anyone remember PROC IDPLOT? One of my early projects in Version 6 was adding labels to scatter plots in PROC PLOT. Yes, I am that old. Later, I worked on a macro, %PlotIt, that used PROC GANNO to label points in scatter plots. Then quite a few years later, ODS Graphics came along. Wow! It is such a great system! It revolutionized SAS graphics and products like SAS/STAT, SAS/QC, SAS/ETS, SAS/IML and others. I am a SAS/STAT developer, not an ODS Graphics developer, but I am proud to have been a part of that effort, which was initiated by my boss, Bob Rodriguez, and carried out by Sanjay and his talented team of developers along with input from all of my SAS/STAT colleagues.
I have done many other things in my career, of course. I wrote a number of procedures, and I worked heavily in experimental design and marketing research. I wrote some of the tools that we use for documentation, and I wrote other tools for documentation quality assurance. However, if you are reading this post, you are probably most interested in graphics. In this, my final post before I retire this month, I would like to review some of my favorite posts. Some are mine, some are Sanjay's, and some come from Rick Wicklin.
This was my first post on Graphically Speaking: The RUN Statement: Fun and Fitness with ODS Graphics. When I was diagnosed with cancer in 2008, shortly after my mother's death (which, of course, was from cancer), I was reeling. My friends and colleagues at SAS were incredibly supportive. We have great health insurance, and an excellent medical facility on campus. Furthermore, I had a top surgeon at UNC. I was so blessed! After I recovered, I was faced with a choice of what I should do with the rest of my life. I decided I was going to do two things that I always avoided. I took up running and dancing. Later, I used ODS Graphics as I charted my progress toward my first marathon. Several SAS colleagues accompanied me. Everyone was so supportive!
It was a few years before I posted again. These four started my highly-customized graphs series. This was when I first realized that you could customize every aspect of graphs.
Advanced ODS Graphics: Modifying Dynamic Variables in ODS Graphics
Advanced ODS Graphics: Annotating graphs from analytical PROCs
Advanced ODS Graphics: Annotating multiple panels
Fit Plot Customizations
For a gentle introduction to some of the same topics, see Rick Wicklin's post: A SAS programming technique to modify ODS templates.
My favorite graph is the Kaplan-Meier plot. Talking about it has gotten me trips to PharmaSUG in all kinds of nice places that were good launching points for hiking in national parks. I have always loved PharmaSUG (even if it had never led to a nice hike). I have devoted an entire SAS/STAT chapter to Customizing the Kaplan-Meier Survival Plot.
All of "my" best ideas come from customers. Multipage Adverse Event Reports Using PROC SGPLOT is one of many examples.
I am probably most associated with ODS Graphics, but ODS has been a huge part of my career as well. Again, I was not one of the ODS developers, but as a SAS/STAT procedure writer, I was an active consumer, and I interacted with the ODS team often. Just as you can highly customize graphs, you can highly customize tables. Displaying the upper or lower triangle of a correlation matrix
I never miss a chance to plug my two free books, Basic ODS Graphics Examples and Advanced ODS Graphics Examples. You can see other posts of mine here. Google my name for other things that I have done.
ODS Graphics continues to evolve. Sanjay keeps coming up with great new topics. Here is a new one on waterfall graphs. Most readers of Graphically Speaking know how active Sanjay has been in providing graphs for clinical research. This post describes a swimmer plot. Lately, Kelly and Ed have been posting about PROC SGMAP.
At the top of my list of posts that I wish I had written is this one from Rick: Do you write unnecessary SAS statements? I have always felt that one should use precisely as many semicolons as one needs--no more and no fewer.
I could provide links for days, but I will stop now. I have been truly fortunate to have worked at such a great company, working with such talented colleagues and customers. I appreciate every collaboration. Even when I am "just" answering questions, I learned things about how we can improve what we do. The collaborations are what I will miss the most as I move into the next phase of my life. They might come from a break room interaction, a SAS conference, or an email. Whatever the source, they have enriched my life, and I hope they have helped some of you too.
I have one bit of personal news. I am getting married in 2019! She and I have a history that dates back to junior high. As I move out of my career at SAS, I move into a wonderful new phase of my life. I plan on spending more time on my bike, in the woods, with my children, and with my wonderful new wife and her children. Fare thee well!