The Adverse Event Timeline graph posted earlier used the MARKERCHAR option of the SCATTER plot to draw the AE names. This option places a center-justified label at the marker position. There is no option in SAS 9.2 version to right-justify the label. Hence, we have to compute an offset in data
English
In the United States, this upcoming weekend is when we turn our clocks forward one hour as we adopt daylight saving time. (Some people will also flip their mattresses this weekend!) Daylight saving time (DST) in the US begins on the second Sunday in March and ends on the first
A few years ago I had the privilege of presenting the last technical paper at SAS Global Forum. This year, conference chair Andy Kuligowski asked me to go one better than that, and present a talk at the official Closing Session. What will I talk about? That's a mystery (maybe
During IFSUG yesterday, Sunil Gupta gave attendees to his presentation a special homework assignment. Look into the SAS Enterprise Guide task 'Characterize Data'. Sunil suggested that this was a simple approach to quickly getting a summary of all the variables within your data table. Of course, some programmers will use
I work with continuous distributions more often than with discrete distributions. Consequently, I am used to thinking of the quantile function as being an inverse cumulative distribution function (CDF). (These functions are described in my article, "Four essential functions for statistical programmers.") For discrete distributions, they are not. To quote
"Bad data does exist," says Sunil Gupta, SAS author and Global Corporate Trainer, Gupta Programming. Gupta is an expert in the pharmaceutical and medical device industry, but he volunteered this week to speak to an audience of SAS users in the insurance and financial services industries about minimizing the impact and
Today at IFSUG, Chuck Patridge presented a wonderful talk about how to complete fuzzy matching using BASE SAS tools. Chuck has been programming SAS since 1979 and has been tasked multiple times with coming up with in-house solutions to address business needs without the software costs that are typically associated
At the IFSUG conference this week in Cary, NC I met Stephen Harris from Bank of America. Stephen gave the talk "Manage Your Partners Before You Manage Your Dashboards: Designing Great Dashboards" covering the business aspects of successfully implementing dashboards. When you back up for a second to consider the
The next time you write a DATA step, try to express it in iambic pentameter. Or instead of a SAS macro function, how about a SAS macro sonnet? (Or, for the more base among you, a limerick?) That's the spirit behind the code {poems} project. You write a poem in
Bubble plots are often used to display social and economic data as Gapminder effectively does. With the addition of the BUBBLEPLOT statement to SAS 9.3, it is now possible to create bubble plots in SAS with a few lines of code: proc template; define statgraph bplot; begingraph; entrytitle 'Bubble Plot
By show of hands, I’d like to know what you consider to be the most exciting day of SAS Global Forum
As a SAS developer, I am always looking ahead to the next release of SAS. However, many SAS customer sites migrate to new releases slowly and are just now adopting versions of SAS that were released in 2010 or 2011. Consequently, I want to write a few articles that discuss
If you've never lived outside of your own small town, you might not realize that each country has a distinct way of writing and formatting currency and numbers. This can be a real problem when working with data and code - I'll bet some of you are already aware of
I've blogged several times about multivariate normality, including how to generate random values from a multivariate normal distribution. But given a set of multivariate data, how can you determine if it is likely to have come from a multivariate normal distribution? The answer, of course, is to run a goodness-of-fit
About once a month, a customer approaches SAS and asks a question of significance. By "significance", I don't necessarily mean "of great importance", but instead I mean "of how SAS handles large numbers, or floating-point values with many significant digits". In response, we always first ask why they asked. This
In the previous post, “Roses are red, violets are blue…”, I discussed the general problem of getting style attributes to line up with specific group values and some ways to overcome the problem. In this installment, I want to elaborate on the attribute map functionality in the Graph Template Language
Sometimes in matrix computations you need to obtain the values of certain submatrices such as the diagonal elements or the super- or subdiagonal elements. About a year ago, I showed one way to do that: convert subscripts to indices and vice-versa. However, a tip from @RLangTip on Twitter got me
As a Master Chief in US Navy submarines, one of my favorite sayings was “Good judgment comes from experience, and experience comes from poor judgment.” I've always had difficulty solidly learning new programming techniques in a traditional classroom. The new techniques and theories I've learned don’t really take root until I've used them to solve
There have been a lot of retrospectives marking the 10th anniversary of the USA PATRIOT Act, but I think what is most compelling is how dissatisfied the industry is with the status quo . KPMG’s ‘Global Anti-Money Laundering Survey 2011’ confirmed a number of trends: cost of compliance increased 45
This question came up while helping my presales colleague with a client’s question: “Is Microsoft Excel in direct competition with SAS?” Not really. I like to think of SAS as partnering with Excel. Because of the following Excel benefits and its synergy with SAS. Excel has been around for years.
Usually when you hear the expression "That's gonna leave a mark!", it's a bad thing! ... But, in this case, it's actually good! Since many of you SAS Global Forum attendees and/or your family members might be visiting the Disney park, I thought it would be fun to use SAS/GRAPH®
I recently saw a SAS Knowledge Base article called "How to stop processing your code if a certain condition is met." The article discusses the use of the %RETURN macro statement to abort the execution of a SAS program if some condition occurs. The "condition" is usually an error that
This classic start to a romantic poem assumes that the correct colors are always assigned to the correct flowers; but, for those who create graphs for reports, consistent color assignment can be more of a challenge than an assumption. This challenge is particularly true for the display of group values.
Well, we can't really afford to give everyone a free copy of the Building Business Intelligence Using SAS: Content Development Examples. But copies will be presented to two randomly selected participants of today's AllAnalytics.com eChat! Then you can be a part of the celebrations! Yes, that's right! People have been
How are you determining customer satisfaction? How do you move the needle? This SAS user mines the unstructured data in patient surveys with SAS Text Miner.
Predictive Analytics World is a little over a week away. I hope you’re planning to be in San Francisco for this exciting conference. This is the first time that SAS Publishing will participate in the event, and I am really looking forward to it. We’re teaming up with the Analytics
Here is the promised follow up on the Dashboard graph. In the previous article, I posted the code to create a panel of bullet KPIs displaying three different metrics. For each KPI, I used 5 columns of data which resulted in a wide and inconvenient structure. A more convenient data structure is
Do you want your report to look good on the web, or to look good when you print it? Pick one. Before the SAS Report file format, that was the choice that you faced. HTML is perfect for the web browser. It's easy to scroll through tables, to apply an
Unlike BASE SAS tables, OLAP cubes must exist in within the metadata in order to access from any of the OLAP Viewers. In addition to having some metadata OLAP cubes have a physical file structure presence (at least for MOLAP/HOLAP because it's a different story for ROLAP). When you refresh
TO: SAS Global Users Group FROM: Chair, Nominations Committee of the SAS Global Users Group Executive Board SUBJECT: Conference Chair SAS Global Forum 2015