Add a stars-style rating column to your SAS output

Now, the Star-Belly Sneetches
Had bellies with stars.
The Plain-Belly Sneetches
Had none upon thars.
- from "The Sneetches", by Dr. Seuss

Recently a user on the SAS-L mailing list had this challenge: "I would like to display stars in a table (created by PROC REPORT) based on variable values. For example, if value=3, then display five stars with 3 in yellow, and the other two in grey."

In her original post, the user had sketched out an approach that used a custom SAS format with uppercase and lowercase Xs representing the desired "star" states. It turns out that this was very close to a working approach. All she needed to do was apply the same technique that I used to add Harvey Balls to a SAS report. Like the Fix-It-Up Chappie, I'm here to offer the solution.

In my Harvey Balls example, I used ODS ESCAPECHAR and Unicode character codes to add extended characters to my SAS format labels. There is a Unicode character for a star (HEX 2605), so the same approach can work. In addition, the ESCAPECHAR sequence can set off style instructions, such as a color definition. This allows you to control the character color "mid-stream". For example, this sequence specifies a red star followed by a gray star:

 ~{style [color=red] ~{unicode '2605'x}} ~{style [color=ygr] ~{unicode '2605'x}}

As it happens, I keep some movie rating data that I downloaded from my Netflix account history (a very rich source of trivial SAS examples). When I apply a custom "star" format to my data, I can produce a report like this:
starsthars
Here's my SAS format and the PROC PRINT code that references it. The format and report look perfect in HTML, PDF and RTF output:

/* ODS EXCAPECHAR needed to set style/unicode cues */
ods escapechar='~';
 
/* Captured these in macro variables for readability and */
/* easy maintenance                                      */
%let graystar = ~{style [color=ygr] ~{unicode '2605'x}};
%let redstar =  ~{style [color=red] ~{unicode '2605'x}};
 
/* using a 4-star system where 1 means "zero stars" */
/* and 5 means the full "4 stars"                   */
proc format lib=work;
value stars
 1 = "&graystar.&graystar.&graystar.&graystar."
 2 = "&redstar.&graystar.&graystar.&graystar." 
 3 = "&redstar.&redstar.&graystar.&graystar." 
 4 = "&redstar.&redstar.&redstar.&graystar." 
 5 = "&redstar.&redstar.&redstar.&redstar." 
;
 
title "Movie titles with STARS on THARS";
proc print data=work.movies noobs;
  format rating stars.;
run;

If you want to try it yourself, you can download my program with test data:

>> Complete SAS program with test data

This program should work in SAS Display Manager, SAS Enterprise Guide (select HTML output), and even the SAS University Edition (SAS Studio).

Post a Comment

Cage match: SAS Studio versus SAS Enterprise Guide

I wish I had a nickle for every time I heard this question at SAS Global Forum:

"So, does this SAS Studio thing replace SAS Enterprise Guide?"

SAS Studio is a pretty big deal. It's groundbreaking in several ways:

  • It's a web-based programming interface to SAS. It runs in your browser, which means that end users don't have to install anything (when connecting to a remote SAS session).
  • It's an HTML5-based application, so there are no browser plugins needed. It runs on Windows, Macs, and even the iPad.
  • It's the basis for new offerings from SAS, most notably the SAS University Edition. This offering is free to just about any learner for non-commercial use. The SAS University Edition includes SAS, running in a virtual machine, packaged with SAS Studio as the user interface. Since its launch earlier this week, people have been downloading it like crazy.

You're going to be hearing a lot about SAS Studio. It was even the theme for this month's SAS Tech Report.
If you haven't seen SAS Studio, take a few minutes and watch my SAS Tech Talk interview with Shannon Smith, the SAS R&D testing manager for the product:

 

So what does this mean for those of us who have invested our skills and processes in SAS Enterprise Guide? If you read this blog regularly, you know that includes me! Does this "new app on the block" replace our beloved SAS Enterprise Guide? The answer is No -- and Yes.

No, SAS Studio isn't a direct SAS Enterprise Guide replacement. SAS Enterprise Guide continues to get new features, mostly targeting productivity enhancements and integration with other SAS offerings, such as SAS Visual Analytics. Many thousands of users around the world use SAS Enterprise Guide to manage process flows, reporting and analytics, database access, and custom processes. SAS Studio doesn't have all of that infrastructure (at least, not yet), and cannot step in to replace all of that.

But also, Yes: SAS Studio can replace some uses of SAS Enterprise Guide. If you use SAS Enterprise Guide simply as way to manage SAS programs in your SAS environment, then you can certainly use SAS Studio instead (or as well) to develop and maintain those programs. SAS Studio also includes some tasks for non-programmers, similar to those found in SAS Enterprise Guide -- but for now the library isn't as rich as what you'll find in SAS Enterprise Guide. And with the SAS University Edition, SAS Studio will represent the first SAS experience for the next generation of SAS programmers.

Sometimes SAS users ask me (usually in a hushed tone): Why does SAS create these different applications that seem to compete with each other? Is there some sort of contest in SAS R&D to see which teams can outdo the others? My answer: while these apps might have a certain amount of overlap, they really do serve different purposes and different audiences. Our goal is to enable SAS users -- regardless of discipline, industry, or expertise -- with the tools that are most fit for their particular purpose. One size does not fit all (though some diehard PC SAS fans might disagree with me).

Plus, here's another secret: the same developers have built all of these applications. The SAS Studio development team includes people who worked on SAS Display Manager (you know, "PC SAS") and SAS Enterprise Guide. This is a direct benefit of SAS being such a great workplace: nobody leaves. That means that the lessons learned from customers and developers are carried over and applied in each successive "app generation". If developers are competing, then they are mostly competing with the proven work they've done in the past. But since the teams always have new technology and techniques at their disposal, it's the end users who win.

Post a Comment

The ingredients of a Data Scientist

It was just a couple of years ago that folks were skeptical about the term "data scientist". It seemed like a simple re-branding of an established job role that carried titles such as "business analyst", "data manager", or "reporting specialist".

But today, it seems that the definition of the "Data Scientist" job role has gelled into something new. At SAS Global Forum 2014, I heard multiple experts describe data science qualifications in a similar way, including these main skills:

  • Ability to manage data. Know how to access it, whether it's in Excel, relational databases, or Hadoop -- or on the Web. Data acquisition and preparation still form the critical foundation for any data analysis.
  • Knowledge of applied statistics. Perhaps not PhD-level stuff, but more than the basics of counts, sums, and averages. You need to know something about predictive analytics, forecasting, and the process of building and maintaining analytical models.
  • Computer science, or at least some programming skills. Point-and-click tools can help keep you productive, but it's often necessary to drop into code to achieve the flexibility you need to acquire some data or apply an analysis that's not provided "out of the box".
  • And finally -- and this makes a Data Scientist the most relevant -- the ability to understand and communicate the needs of the business. You might be a data wiz and have metrics out the wazoo, but an effective data scientist must know which fields and metrics matter most to the organization he or she serves. And you must be able to ask the right questions of the stakeholders, and then communicate results that will lead to informed action.

I don't claim to be a data scientist -- I'm not strong enough in the statistical pillar -- but I do have my moments. For example, I consider my recent analysis of blog spam to be data-science-like. Even so, I'm not brave enough to change my business cards just yet.

At SAS Global Forum I talked to Wayne Thompson, Chief Data Scientist at SAS. (Yes, even SAS is capitalizing on the buzz by having a data science technologies team.) Here he is introducing SAS In-Memory Statistics for Hadoop, a programming interface that's meant to empower data scientists:


 
Wayne and I also talked a couple of other times: once about SAS Visual Statistics ("it's the shizzle", says the bald white guy -- not me), and once about data science in general.

Data science isn't all just "Wayne's world" -- there were plenty of other data science practitioners at the conference. For example, check out Lisa Arney's interview with Chuck Kincaid of Experis, talking about how to be a data scientist using SAS. (See his full paper here.) And SAS' Mary Osborne, who presented on Star Wars and the Art of Data Science. (Her paper reveals the unspoken fifth pillar of a data scientist: it's good to be part nerd.)

What do you think about the "new" field of data science? Have you changed your business card to include the "data scientist" title?

Post a Comment

Adding Harvey Balls to your SAS reports

I'm currently working on a large project for a SAS customer. The project comprises many activities and phases, so there is a need to track progress on many different levels. During a recent meeting the project manager announced, "I'm putting together a status deck, and I'll include some Harvey Balls for each item."

"Harvey whats?" I said, nearly spitting out my coffee.

I've since learned that Harvey Balls are a project-management thing. They are used as way to communicate qualitative progress towards a goal: not just whether an item is complete, but also how far along it is. (Please, don't confuse these with Harvey wallbangers, which are used to measure progress towards something else.) Harvey Balls remind me of the little circles that I see in Consumer Reports product reviews.

A web search will yield lots of examples of how to add Harvey Balls to your PowerPoint slides and Excel spreadsheets -- favorite domains of project managers. However, there isn't much (any?) about how to use these in SAS, so with this blog post I hope to corner the market.

First, a visual -- here's what Harvey Balls look like in a SAS report:

hbreport
It turns out that the Harvey Ball glyphs are built into some of the fonts that you probably have installed, and can be accessed by referencing their Unicode character values. For ODS-based reports, we can include any Unicode character that we need by using:

  • the ODS escape character, combined WITH...
  • the {unicode} keyword, AND..
  • the hexadecimal code of the character we want.

For example:

ods escapechar='~';
title "This is a full-circle Harvey Ball: ~{unicode '25CF'x}";

yields this:

hbtitle
For a more data-driven approach, I decided to encode the Harvey Balls in a numeric SAS format. In my mapping, I set values between 0 and 4, inclusive. 0 means "empty" or no progress, whereas 4 means "full" or complete. 1 through 3 represent a quarter, halfway, and three-quarters, respectively.

ods escapechar='~';
proc format lib=work;
value hb  
  0 = "~{unicode '25CB'x}" /* empty circle */
  1 = "~{unicode '25D4'x}" /* quarter */
  2 = "~{unicode '25D1'x}" /* half */
  3 = "~{unicode '25D5'x}" /* three-quarter */
  4 = "~{unicode '25CF'x}" /* full */
;

Here's a partial listing of the PROC REPORT code that uses the format. Note that I added some other appearance treatments to the report column with the Harvey Ball. Because the font glyph tends to be small, I bumped up the font size to 18 points. I also specified Lucida Sans Unicode as the font face because I know that font contains the right glyphs. Finally, I tweaked the alignments to account for the larger padding that accompanies the larger font size, ensuring the data looked vertically aligned properly in each row.

proc report data=progress;
 columns  stage dev test prod;
 define stage / 'Activity' display style=[verticalalign=center];
 define dev  / '% Dev' format=hb.
  style(column)=[
   font_face='Lucida Sans Unicode' 
   font_size=18pt 
   verticalalign=center 
   just=c 
   color=blue
   ];
/* ... */

>> Download the complete example program from here. (Should work with SAS 9.2 or later)

Bonus: If you have SAS 9.4, you can modify this program to place the report directly into PowerPoint! This makes it perfect for consumption by project managers everywhere.

ods powerpoint file="c:\temp\hb.pptx" style=PowerPointLight;
/* proc report section here...*/
ods powerpoint close;

Here's a screenshot of the result (click to see it full size):

hbppt

See also

The Power of Unicode (using these characters in SG plots)
Unicode Tick Values using GTL
The Great Escape(char) - great paper by SAS user Louise S. Hadden

Post a Comment

Blog spam: ain't nobody got time for that

Here at SAS, we've come a long way with how we deal with blog spam on blogs.sas.com.

Last year at this time, I was sifting through dozens of spam messages per day in order to salvage the one or two genuine comments that originate from real readers. I was just a human trying to keep up with machine-generated spam, a time-consuming -- and somewhat frustrating -- activity.

I created SAS-based reports that showed the impact not just on me, but on the hundreds of other SAS blog contributors. Thankfully in May, our internal IT support configured an industry-standard spam-filtering mechanism called Akismet. The spam flow ceased immediately, as if somebody turned a spigot.

Recently, the spigot has been turned on slightly, allowing a few spam messages to leak through. The spammers are like an ever-evolving virus, constantly adapting their techniques to punch through our defenses. I wondered: with the leaks I'm seeing, how effective is Akismet for us today?

It turns out that Akismet is very effective. Despite the few messages that I see leak through daily, Akismet is catching over 95% of the spam messages that target our blogs. Over the last 16 days I saw 40 spam notifications hit my inbox. Without Akismet, I would have seen 741 messages in the same period. Yikes.

akismetdbI can see some of this within my WordPress blog administration screen, since the Akismet plugin embeds a sort of dashboard there. This is useful for me, but we have over 30 blogs hosted at blogs.sas.com. As far as I know, we don't have a view into how Akismet is performing for our entire set of blog properties.

Enter SAS. By using SAS to connect to the WordPress database (something I already do for other reports), I can scrape and aggregate the Akismet metrics for a more global report on spam activity. Here's an example of a chart that I created:

akismet

In this chart, the height of the blue bar indicates the total number of incoming spam on each day, across all blogs.sas.com blogs. The smaller green bar indicates the number of "author-identified spam" messages -- those that the filter did not catch and that the blog moderator had to mark as spam. The number at the top of each bar indicates a "percent missed" for the day. And finally, the text at the bottom of the chart provides a summary: total spam caught, total missed, and a percentage. Since we receive so much spam, the IT folks configured Akismet to purge our spam data every 3 weeks or so. That's why the chart shows only a 16-day study period. (See an example of the full report here.)

Interested in the SGPLOT code behind this chart? It looks something like this (data prep steps omitted, of course):

proc sgplot data=reckoning;
  format comment_date dtdate5. fail_rate percentn6.2;
  label spam_caught='Spam caught' spam_allowed='NOT caught';
  vbar comment_date / response=spam_caught dataskin=pressed
  datalabel=fail_rate datalabelfitpolicy=none 
    datalabelattrs=(color=black size=10pt);
  vbar comment_date / 
     response=spam_allowed barwidth=.6 dataskin=pressed 
  ;
  yaxis label="Akismet ruling" grid;
  xaxis valueattrs=(size=9) 
    label="Spam comments (&total_caught. caught, &total_allowed. allowed - &overallfail. missed overall)";
run;

Assuming that it takes a blog moderator just a few seconds to evaluate and dispose of each spam message, Akismet has saved us a collective several hours over the weeks we see here. However, as we can see from the metrics accumulated over time, this really adds up:

akismettable
I don't think that Akismet costs us very much, and -- in my view -- the time that we save is definitely worth the expense. Spammers will always be with us and are just part of the cost of publishing content. But dealing with it manually? Ain't nobody got time for that.

Post a Comment

Take control of ODS results in SAS Enterprise Guide

When you run a program or task in SAS Enterprise Guide, the application wraps your job in an "ODS sandwich", the colloquial term we use for the ODS statements necessary to create output that can be viewed in your project.

That's convenient for exploring and refining your program, but at some point you might want to use your own ODS statements and options to control the format and appearance of the output. You might find that the default ODS sandwich that SAS Enterprise Guide generates can get in your way.

For example, suppose that you want to create a PDF output with landscape orientation and Legal paper size. The default SAS Enterprise Guide options might be in conflict with some of the options you need. The best approach? Squelch the "automatic" options, and code up your own exactly how you need them. Here's how.

First, change the properties of your SAS program.. Right-click on the program node in your flow and select Properties, or click the Properties icon at the top of the editor window:

codebar

In the Properties window, select the Results tab. Then select the Customize results formats [...] option, and uncheck all of the built-in formats.

resultsopts
Next, add the ODS statements and options necessary to produce the results that you want. For example, if you want a PDF file that has a particular format, use something like this:

options orientation=landscape papersize=legal;
ods noproctitle;
 
/* using ID= to control each ODS dest */
ods pdf (id=custom) 
  /* this file path is on the SAS workspace */
  file="C:\Projects\report.pdf" 
  columns=2 style=journal;
  title "Types by Cylinders and MSRP stats";
 
proc freq data=sashelp.cars;
  table Type * Cylinders;
run;
 
proc means data=sashelp.cars;
  class Origin;
  var msrp;
run;
 
/* print-friendly image options */
ods pdf (id=custom) dpi=300 startpage=no;
ods graphics / 
  noborder scale=on
  height=2in width=2.5in;
title "Distribution";
 
proc sgplot data=sashelp.cars;
	histogram msrp;
	density msrp;
run;
 
ods pdf (id=custom) close;

Sample result:
Link to PDF
Some notes about this program:

  • The FILE= option on the ODS PDF statement refers to the file that you want to create in the file system of your SAS workspace, not your local machine. SAS Enterprise Guide will offer to download this file for you to view, but if you want complete control over where it lands on your local PC, use the Copy Files task to download it.
  • If you run this program in SAS Enterprise Guide without turning off the other Results formats, the final PDF output won't have all of the attributes you expect. For example, the graph might look slightly different. So if this PDF is your ultimate objective, be sure to suppress the automatic results from SAS Enterprise Guide.
  • Use this same technique to create custom HTML output, or ODS POWERPOINT (new in 9.4), ODS EPUB (new in 9.4) or even ODS HTML5 (hey! new in 9.4).

For a minimalist, fast-running SAS program, you can use this technique to suppress the fancy (bulkier) ODS results and rely on the old-school LISTING format. In the Results properties for your program, uncheck all output destinations except for Text. If your program generates only text-based output that you want to view quickly, this will turn SAS Enterprise Guide into a speedy-quick results-generating machine...just like you might be accustomed to from your old PC SAS days.

See also

Destination Known: Programmatically Controlling Your Output in SAS Enterprise Guide, by Aaron Hill
[VIDEO] New Destinations in ODS: PowerPoint, HTML5, EPUB, EXCEL
Tip Sheet for ODS PDF

Post a Comment

Frankenstein hackey-sacking with a missile

I'm in the grocery store with a "mental" list of 3 items to pick up: bread, eggs, and something unusual like cupcake liners. My phone rings. It's my wife (or sometimes a daughter) asking me to pick up one or two more things, maybe orange juice and bananas. Suddenly, the entire list vacates my mind, as if a gate was left open. I will leave the store having forgotten something.

That happens to me all of the time. I now ask my family to simply text the grocery list to my phone so that I have it for reference (as long as I remember to look at my phone). But according to Nelson Dellis, memory expert and 2014 USA Memory Champion, that's not the way to improve my memory.

chris (and sara) and nelsonInstead, I should be training my brain to remember more things, perhaps using interesting and vivid images to help create a "memory palace" that I can easily traverse and retrieve memories as I need them. That's how Nelson developed his extraordinary memory performance, which allowed him to achieve feats such as memorizing pi to 1000 digits. ("Frankenstein hackey-sacking a missile" was one of his example memory anchors.)

Nelson proved his memory prowess in front of thousands of SAS users at SAS Global Forum, and I helped him to do it. My part was to point at a digit in the middle of the 1000-digit sequence, then read the 10-digit sequence from that point. Nelson would then recite the 10 digits immediately following my sequence, and then the 10 digits preceding.

On his first attempt, Nelson came up empty. It might have had to do with the way I read the digits (hey, it's harder than it looks!) or perhaps it was just dumb luck. But we tried again, and success! Then another audience member read a sequence, and Nelson rattled off the 20 surrounding digits. We were all amazed.

nelsonandmeNelson was an excellent sport throughout the rest of the day. Our SAS internal communications folks had him memorizing employee names, reciting song lyrics after having just one minute to review them, and playing a kid's matching card game. He performed admirably.

We caught up later in the Demo and Support Center, and he assured me that he held no hard feelings for my part in his missed pi performance (as he redeemed himself anyway, to much applause from the crowd). As you can see from this photo of us, he's a tall dude. (For comparison, I'm 6'1" and change.) I was pleased to see Nelson get some very positive press recently on Mashable, where you can read more about his background, his personal story, and his memory techniques.

See also:

Karin Reed interviews Nelson Dellis on SAS Global Forum Live Report
Lisa Arney interviews Nelson for Inside SAS Global Forum
Mashable: Man With World's Strongest Memory Crusades Against Alzheimer's

Post a Comment

Confessions of a SAS Dummy

SAS Global Forum 2014 was a ton of fun, and extremely busy for yours truly. If you wonder how I spent my time at the conference, you need only to visit the on-demand video archive and see how many of the various sessions feature my shiny head.

In most of these videos I'm a bit player, acting only as a host while some smarter people share the interesting demos and insights. But I do have one video that's all my own. And it features content that I "test marketed" on this very blog. The session is called "Confessions of a SAS Dummy".

Description from the conference schedule:

People from all over the world are using SAS analytics to achieve great things, such as to develop life-saving medicines, detect and prevent financial fraud, and ensure the survival of endangered species. Chris Hemedinger is not one of those people. Instead, Chris has used SAS to optimize his baby name selections, evaluate his movie rental behavior, and analyze his Facebook friends. Join Chris as he reviews some of his personal triumphs over the little problems in life, and learn how these exercises can help to hone your skills for when it really matters.

This presentation is a reprise of talk that I've given at several user groups, including as a keynote feature in two regional SAS user group conferences last fall. Now, since it's recorded and viewable by anyone at any time, I can probably never give it again. I guess I'll have to find some other topics to milk for my in-person appearances.

I've had friends who watched the video (and I didn't even have to pay them!) and said (with a hint of pity), "I enjoyed the talk, but the audience didn't seem to be all that entertained." Well, I was there and I can tell you that my audience was very good, and I was pleased with their feedback. Unfortunately, unlike at the taping of a sitcom episode, the audience is not miked so you can't hear their reaction as I speak. You can hear their questions at the end only because the questioners use a microphone for that part of the session.

Perhaps I'll petition the video editing team add a laugh track. If you're feeling charitable, feel free to leave some chuckles in the blog comments.

Archived recording: [VIDEO] Confessions of a SAS Dummy

Post a Comment

Talking Tech at SAS Global Forum 2014

Talking tech with Nancy R. at SASGF13

For the third year now, I'll be hosting the SAS Tech Talk shows at SAS Global Forum. (Since I've been invited back I can assume that I'm more of an Ellen DeGeneres than a Seth MacFarlane.)

These shows feature SAS technical experts (mostly from SAS R&D) who are prepared to discuss and demonstrate the technologies that they work on. These folks have job titles such as "Chief Data Scientist", "Principal Research Statistician", and "Senior Analytical Consultant". They work in areas such as "SAS Output Delivery and Reporting", "BI Data Visualization", and "Enterprise Management Integration".

These guests represent the SAS R&D talent that bring the SAS products to life. Some will be names that you know from books and blogs, such as Rick Wicklin. Others are return guests to SAS Tech Talk, such as Nascif and Himesh. And still others might be faces that are new to you, but they are the movers and shakers when it comes to SAS technology.

This year we have three SAS Tech Talk shows:

  • Monday, 24March at 2pm EDT
  • Tuesday, 25March at 2pm EDT
  • Wednesday, 26March at 9am EDT

Each show is different, and we're covering 12 great topics in all. I'm very excited about this year's lineup! I'd list out the topics right here, but some are the subject of exciting product announcements and I don't want to steal anyone's thunder!

There is no doubt that you get the best conference experience when you can attend in person. But even if you cannot attend this year, you don't have to miss out. Much of the content -- the opening sessions, SAS Tech Talk, and many breakout sessions -- will be streamed on live video channels, all hosted at www.sasglobalforum.com. Any content that is streamed will also be archived so that you can watch it later (can you say "movie night"?).

See also
Previous SAS Tech Talk shows on YouTube

Post a Comment

Adding some culture to your SAS Enterprise Guide prompts

My teenage daughter is a self-appointed anglophile. She's a big fan of British movies and TV shows such as Doctor Who and Sherlock, and although she has not yet visited the UK (an injustice for which she blames her father), she considers the place to be her homeland.

In an effort to live out her adopted British lifestyle, she changes her iPhone and laptop settings to "English - British". It's an innocuous preference, usually. However, it does occasionally create a problem, such as when she accidentally turns in schoolwork with British spellings for words such as "honour" or "colour". (As the famous quote from George Bernard Shaw points out, we are two nations divided by a common language.) Fortunately, her teachers sympathize (or "sympathise") and don't usually deduct points for these "misspellings".

SAS Enterprise Guide (and other SAS applications) are translated into many languages, but for these apps "English is English", and there is no special affordance for those users in the UK or Australia. For these users, running SAS Enterprise Guide in English means running it as "English - United States". Even though the language is the same, there are a few local customs, such as the format of date values, that can confuse end users.

These differences are evident in a few places, including in the prompt dialog for date values. When running in "English - United States" mode, a "Date"-type prompt looks like this:

The display value is USA-style, but more confusing is what happens when you try to enter a date value. Even though the prompt window displays the current value with the full month name, the user can enter date values by using a variety of different value styles. In the USA, we usually enter dates as "MM/DD/YYYY", where "02/10/2014" is interpreted at February 10, 2014. But a British or Australian user, accustomed to "DD-MM-YYYY" formatting, might expect that value to come out as October 2, 2014.

However, you can convince SAS Enterprise Guide to observe the local customs, and here's how. Change your SAS Enterprise Guide shortcut to add a "/culture" argument, as in:

"c:\Program Files\SASHome\x86\SASEnterpriseGuide\6.1\SEGuide.exe" /culture:en-AU

The above example is for Australia. For British, try adding "/culture:en-GB". Here's the same date prompt with the new setting applied:

Any date value that you enter will be interpreted in the "Australian way" instead of the American way. This technique works for any version of SAS Enterprise Guide, 4.2 and later.

If you don't want to rely on a modified shortcut, you can set your "language" preference in Tools->Options. But first, you need to "fool" SAS Enterprise Guide into thinking that you have installed these additional English variations. Here's how.

  1. Using Windows Explorer, navigate to the installation directory for SAS Enterprise Guide.
  2. In the application folder, create a new empty folder with a name that matches the culture you want. For example, "en-GB" for British or "en-AU" for Australia.

    You can find the complete set of "culture names" on the Microsoft developer site.

When you restart the application, you will find new "language" options available on the list:

Select the one you like, restart the application, and immerse yourself in a new culture.

Post a Comment