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
Uncategorized
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
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
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
Neil Constable is a Principal Education Consultant at SAS in the United Kingdom, where he applies his extensive knowledge of Base SAS, SAS Enterprise Guide, and the SAS business intelligence tools. He's also the author of SAS Programming for Enterprise Guide Users, Second Edition--and this week's featured tip. You can get to know Neil
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.
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
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
Citing online job postings reviewed by talent data firm Wanted Analytics, and a Software Advice blog by Michael Koploy, APICS e-News reports that "Demand planning analysts" are hot -- one of the five hottest careers in logistics. (Free subscription to APICS e-News) Clearly, APICS means there are a lot of good jobs
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
I recently blogged about Mahalanobis distance and what it means geometrically. I also previously showed how Mahalanobis distance can be used to compute outliers in multivariate data. But how do you compute Mahalanobis distance in SAS? Computing Mahalanobis distance with built-in SAS procedures and functions There are several ways to
Recently I complained about the stock art used on The BFD blog header. So I was foaming with excitement when Alison Bolen (who oversees the SAS blogging platform) kindly took notice, and enlisted Mr. Blackwell to come up with something more pleasing and appropriate. OMG Mr. Blackwell!!! As a huge fan of
Teachers have more than enough to juggle each day, lacking the time to search for, and find, high-quality curricular resources online. When I would search for lesson plan supplements, I would often get lost in Google's abyss of results, spending far too much precious time sifting through mediocre materials. Until
The SAS DATA step supports a special syntax for determining whether a value is contained in an interval: y = (-2 < x < 2); This expression creates an indicator variable with the value 1 if x is in the interval (-2,2) and 0 otherwise. There is not a standard
I have previously blogged about how to convert a covariance matrix into a correlation matrix in SAS (and the other way around). However, I still get questions about it, perhaps because my previous post demonstrated more than one way to accomplish each transformation. To eliminate all confusion, the following SAS/IML
I love dogs. Not to the extent that Rick Santorum has to be concerned. And not to the extent of actually having a dog as a pet. But man-dog love has become an issue in the 2012 US presidential campaign, and I thought The BFD readers should know my stance
I previously described how to use Mahalanobis distance to find outliers in multivariate data. This article takes a closer look at Mahalanobis distance. A subsequent article will describe how you can compute Mahalanobis distance. Distance in standard units In statistics, we sometimes measure "nearness" or "farness" in terms of the
Building Business Intelligence Using SAS: Content Development Examples by Tricia Aanderud and Angela Hall just published this month. This highly anticipated book—called “a must read for anyone using SAS® BI”* —is a quick-start guide that will help users move quickly from using only one of the SAS BI Clients to
History is easy to explain. We can always come up with some story for why this or that occurred. And, if the story sounds plausible enough, the explanation will be accepted as true. But can we ever know that the explanation is correct? How would we ever test it? If we
How we love shortcuts. Our life seems more efficient with them. I try to take the earlier train for a good parking spot that lets me exit early. Actually change that to any spot (my train station has tons of commuters with FEW parking spaces so getting up early is the
Way back when I learned to program, I remember a computer instructor explaining that an IF-THEN statement can be a relatively slow operation. He said "If a multiplication takes one unit of time, an IF statement requires about 70 units." I don't know where his numbers came from, or even
I have a love-hate relationship with spreadsheet data. I am interested in finding data to analyze, and if it arrives in the form of a spreadsheet, I'll take it. And I like to deliver results and reports, but often my constituents ask for it as a spreadsheet that they can
As SAS user Marje Fecht said "We all want a 'SAS programming assistant' to help us complete our jobs more quickly." Fecht, Senior Partner at Prowerk Consulting, then went on to say "In her book SAS Macro Programming Made Easy, Second Edition, Michele Burlew encourages us to take advantage of the SAS
The American Association of State Highway Transportation Officials recently released a top 10 list of transportation issues that will be “talked, written or tweeted and legislated about” in 2012. As expected, funding constraints and Congressional action on reauthorization appear on the list but the group also notes that natural disaster
Unlike prior versions of SAS OLAP technology, 9.2 provides more options for maintaining and refreshing OLAP cubes. With this comes some discussion about what each one does alone, and how pairing these techniques really provides SAS OLAP Server Administrators and cube developers a cornucopia of OLAP options. PROC OLAPOPERATE Remember
A variance-covariance matrix expresses linear relationships between variables. Given the covariances between variables, did you know that you can write down an invertible linear transformation that "uncorrelates" the variables? Conversely, you can transform a set of uncorrelated variables into variables with given covariances. The transformation that works this magic is
Some ideas sound great (combining chocolate with peanut butter) and turn out great (Reese's Peanut Butter Cup). Some ideas sound great (getting a face lift) but turn out bad (Kenny Rogers, Greta Van Susteren). Some ideas sound bad (a Run-DMC / Aerosmith duet) but turn out great ("Walk This Way"). Some ideas sound bad (letting