A career in review - my final Graphically Speaking post


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!


About Author

Warren F. Kuhfeld

Distinguished Research Statistician

Warren F. Kuhfeld is a distinguished research statistician developer in SAS/STAT R&D. He received his PhD in psychometrics from UNC Chapel Hill in 1985 and joined SAS in 1987. He has used SAS since 1979 and has developed SAS procedures since 1984. Warren wrote the SAS/STAT documentation chapters "Using the Output Delivery System," "Statistical Graphics Using ODS," "ODS Graphics Template Modification," and "Customizing the Kaplan-Meier Survival Plot." He also wrote the free web books Basic ODS Graphics Examples and Advanced ODS Graphics Examples.


  1. Rick Wicklin

    Warren, I will always remember and treasure my interactions with you. Your commitment to quality is legendary. Your command of the intricacies in the SAS language is unparalleled. I will miss learning from you and being inspired by you. Best wishes on your retirement and life after SAS, and thank you for all that you've done for the company and its customers.

    • Warren F. Kuhfeld
      Warren F. Kuhfeld on

      Thank you so much, Rick! I appreciate the kind words! You are one of so many people that I will miss.You, your books, and your blog have been such outstanding resources to me and others both inside and outside SAS.

  2. Sanjay Matange
    Sanjay Matange on

    Hi Warren. Thanks for a great "final" post, providing a synopsis of your career at SAS. I will always value the opportunity to work with you and Bob on developing the ODS Graphics system. Your suggestions and advice was always on point and well appreciated. It was a big gain for this blog when you started regularly writing articles on the proper usage of the graphics with statistical analysis. Thanks for freely sharing your knowledge, and your free books.

    • Warren Kuhfeld on

      Thank you so much, Sanjay! Working with you, Bob, Dan, Prashant, Lingxiao, and all of our other colleagues was such a great experience. It is incredible what a motivated group of collaborative people can accomplish!

  3. What a lovely and sad farewell post Warren - it's in your last post we learn so much about you! Your blog posts and rich tips have been great to read, take on board and share, and your absence will be noticeable in the SAS community. All the best in your future adventures and hopefully you'll make a guest appearance at some point too 😉

  4. Shelley Sessoms
    Shelley Sessoms on

    Warren, it has been a pleasure working with you in various capacities here at SAS. You are someone I could always count on for insightful help and guidance. I wish you the best in this stage of life!

  5. Chris Hemedinger
    Chris Hemedinger on

    Warren, it's been a privilege to work with you throughout the years, and especially on the SAS Support Communities. Your deep knowledge and humble demeanor has helped thousands of SAS users to understand some tricky topics. I wish you all of the best for your next chapter!

    • Warren F. Kuhfeld
      Warren F. Kuhfeld on

      Thanks, Chris! Incidentally, it was the day after the marriage proposal story ran internally at SAS that I reconnected with my old classmate, now my fiance. Maybe I should write up that story for SAS Support Communities.

  6. Bravo Warren. You are way too modest, and you are too, forever, a member of the ODS development team We would have a much less awesome thing without the spirit of the ODS Junta that got the templates so consistent and coherent. Bon Voyage!

    • Warren F. Kuhfeld
      Warren F. Kuhfeld on

      Thanks, Paul! I will always fondly remember those days running in and out of yours and Chris' office. Randy and I seemingly endlessly discussed how we thought this all should work. Then everything came together in such a great way!

  7. Hat tip to you, Warren. While I haven't personally worked with you long, I deeply appreciate your many contributions to the SAS community. All the best to you in this new chapter!

  8. Warren,

    Good luck in your future. Those of us who remember using SAS 5, or SAS 72 even, are retiring at an increasing rate. We overlapped for a few years in graduate school, though I was in biostat.


    • Warren F. Kuhfeld
      Warren F. Kuhfeld on

      Thanks, Doc! I spent a lot of time in BIOSTAT. That is where I was the teaching assistant for the SAS class. I also minored there. Yes, us old timers are riding off into the sunset at an increasing rate.

  9. Wow! I had always thought the best of you, Warren and this retrospective puts the shine on it. What a great career. I have benefited from your posts and articles many times, and I'm sure I will many times going forward. I wish you all the best in your new life.

    • Warren F. Kuhfeld
      Warren F. Kuhfeld on

      Thanks for the kind words, Chuck! It was great to cross paths with you at so many SAS conferences!

  10. Susan Schwartz on

    I have so enjoyed working with you over the years Warren. ODS Graphics was the best project I ever worked on, and I learned so much from you. All my best, and here's to new phases of life!

    • Warren F. Kuhfeld
      Warren F. Kuhfeld on

      Thanks, Susan! It was great to work for you too! Susan was at all of the early meetings we used to have on ODS Graphics design. Best wishes to you!

  11. What an absolute privilege to have worked with you Warren. I agree with Paul -- you are most definitely part of the ODS team. There were lots of "discussions" back in the day regarding lots of details, but it was those details that you are so good at. It certainly helped bring rigor and quality to what ODS is today. Cheers to your future! I wish you well in thise new chapter of your life.

    • Warren F. Kuhfeld
      Warren F. Kuhfeld on

      Thanks, Sandy! Working with the ODS and ODS Graphics teams was one of the highlights of my career at SAS!

  12. Wow! Incredible career. I mostly know you from the SAS communities and of course this blog. Your community profile are one of those where I regularly click on the profile itself to see all your recent answers. I learn so much from that.

    Thank you for all your SAS efforts, Warren. Good luck in the future and huge congratulations on getting married 🙂

    Regards Peter Clemmensen (draycut)

  13. Ana Drozdowskyj on

    Hi Warren,
    Just to say thanks for your great contribution and help to the SAS community!! I wish you the best and a wonderful life. Kindest regards,

  14. Hi Warren,
    I didn't get around to browsing the SAS Tech Report until now, and only now saw the link to your latest and last blog.

    It sure made me realize my own age!
    Over the years I used your work (Proc's, macro's, examples) quite a lot.
    I started work professionally in 1980 as a traffic safety researcher, with a background in civil engineering plus some statistical knowledge. That's why I got the task to examine relations in a quite large database of traffic accidents (i.e., large for that era). For that we used the HOMALS and CANALS algorithms developed by De Leeuw and Rijckevorsel et al. at Leiden University.
    After a few years we got access to SAS and started using that quite a lot. For instance, to make nice graphs of the output of CANALS, and I used the %PlotIt macro for that, and especially the piece of code that determined the nice intervals for axes, in order to get nice square graphs with the X- and Y-axes scaled the same way.
    Then I discovered that those algorithms were implemented in SAS as well, and I tried to figure out how to get identical results. I sure must have read your Technical Report R-108 (still in support.sas, it was one of those brown books, I think).

    Later, when I moved to SAS consultancy work, I always tried to work on projects that involved creating nice output, with graphs, and used ODS from the early beginnings. And that lead to several SUGI/SeUGI/SGF-papers with quite a log ODS, graphics and SG-graphics in it.

    Have a nice time being retired - in not so many years I will join you.

  15. Josh Horstman on

    Congratulations, Warren! We've only interacted a few times, but I have found your work tremendously helpful in my work. We'll miss you at PharmaSUG this year!

    Josh Horstman

  16. Dennis Fisher on

    Congrats on getting married. I first met you when you were a grad student and going crazy over how to get labels on your plots. You were the one who solved a problem with the PROC ALSCAL that I could not get to run no matter how many variations I tried. You told me to put the region up to 2 MB which seemed like an enormous amount of memory. When I did that, everything ran. I guess it is time for you to retire as I am semi-retired and may have one more year before full retirement. Thanks for publishing the macro I did with Paul Hoffman at UCLA when I was a post-doc, which you accepted for Psychometrika. This was the journal that all of us at UCLA wanted to be published in. When I got to the University of Alaska as a faculty member, no one had ever heard of the journal! Hope you have a wonderful retirement.

Back to Top