All Posts

Author note: I'm "replaying" this post in honor of Computer Science Education Week. It originally appeared here over 3 years ago. Today was "career day" in my daughter's 3rd grade classroom. A few privileged parents were invited to attend and answer questions about their professions, press-conference style. Among those on

Recently I read a blog that advertised a data visualization competition. Under the heading "What Are We Looking For?" is a link to a 2007 Bloomberg Businessweek graph that visualizes how participation in online social media activities vary across age groups. The graph is reproduced below at a smaller scale:

Next week we'll be celebrating Computer Science Education Week. SAS is a partner in this event, which makes complete sense because we have a vested interest in creating more computer scientists. After all, SAS does employ a lot of them. When I was enrolled in a computer science program (sometime
Japan has a superfast train called the Shinkansen. The first I heard of it was when my sister visited Japan on a scholarship. Engine-awestruck, we wanted a ride, but weren’t able to get to Japan. Nor, did we know the language. (With over 5000 kanjis, it took my sister 3

Errors. We all make them. After all, “to err is human.” Or, as programmers often say, “To err is human, but to really foul things up requires a computer” (Farmer’s Almanac, 1978). This post describes how to interpret error messages from PROC IML that appear in the SAS log. The

Update 25Nov2010: I've updated this example to correct the code so that it works correctly for positive UTC offsets. Thanks to Bruno Müller, my colleague at SAS, for finding my mistakes. One of my SAS colleagues was recently working on a project where she had to create reports that include

Many people mistakenly assume that just because you want to use a SAS program to access a protected resource (such as a database table), you must include the credentials for the resource inside your program. Few things cause a database administrator to lose more sleep than coming across this within

I am thankful to be a statistical programmer. When I wake up in the morning, I am eager to start my day. I love statistics, programming, and working at SAS, and I write my blog to share that joy. This a Golden Age for statistical programmers because theoretical ideas and

It was over two years ago that I shared the tip of using Process Explorer to look under the covers at which SAS processes were running on your Windows environment. Process Explorer recently received a refresh, and it's worth downloading the new version. (Yes, it's free.) If you want to

I give many presentations and workshops on how to use SAS/IML Studio, and more than once I have been asked about how to launch the program. Sometimes the inquiry hints at mild frustration, such as last week's "How do I RUN the $%#@# THING!!!!" The email I got this week

The recent mail bomb attempt on US-bound cargo and commercial airliners is another reminder of the terrorist threat the United States continues to face. While there may be a lull in the news cycles from time to time, the threat is there every day. A key component in detecting and
I was building a nice little PDF report the other day. I love the way ODS PDF replicates the SAS Results window navigation structure as PDF bookmarks, but... I'd much rather write the text for the bookmarks myself. So, I decided to "use the SAS" and make ODS do my

Many SAS users receive data in the form of CSV (Comma Separated Value) files, and need to convert them to SAS data sets. A typical record in a CSV file might look like this: Jeter,Derek,1995,,234,”22,600,000” Note the following about the record above: There is no data for the fourth field,

In a previous post, I used statistical data analysis to estimate the probability that my grocery bill is a whole-dollar amount such as $86.00 or $103.00. I used three weeks' grocery receipts to show that the last two digits of prices on items that I buy are not uniformly distributed.

In a previous post, I discussed computing regression coefficients in different polynomial bases and showed how the coefficients change when you change the basis functions. In particular, I showed how to convert the coefficients computed in one basis to coefficients computed with respect to a different basis. It turns out