5月 302018
 

developing foolproof solutionsAs oil and water, hardware and software don't mix, but rather work hand-in-hand together to deliver value to us, their creators. But sometimes, we make mistakes, behave erratically, or deal with others who might make mistakes, behave erratically, or even take advantage of our technologies.

Therefore, it is imperative for developers, whether hardware or software engineers, to foresee unintended (probable or improbable) system usages and implement features that will make their creations foolproof, that is protected from misuse.

In this post I won’t lecture you about various techniques of developing foolproof solutions, nor will I present even a single snippet of code. Its purpose is to stimulate your multidimensional view of problems, to unleash your creativity and to empower you to become better at solving problems, whether you develop or test software or hardware, market or sell it, write about it, or just use it.

You May Also Like: Are you solving the wrong problem?

The anecdote I’m about to tell you originated in Russia, but since there was no way to translate this fictitious story exactly without losing its meaning, I attempted to preserve its essence while adapting it to the “English ear” with some help from Sir Arthur Conan Doyle. Well, sort of. Here goes.

The Art of Deduction

Mr. Sherlock Holmes and Dr. Watson were traveling in an automobile in northern Russia. After many miles alone on the road, they saw a truck behind them. Soon enough, the truck pulled ahead, and after making some coughing noises, suddenly stopped right in front of them. Sherlock Holmes stopped their car as well.

Dr. Watson: What happened? Has it broken?

Holmes: I don’t think so. Obviously, it ran out of gas.

The truck driver got out of his cabin, grabbed a bucket hanging under the back of the truck and ran towards a ditch on the road shoulder. He filled the bucket with standing water from the ditch and ran back to his truck. Then, without hesitation, he carefully poured the bucketful of water into the gas tank. Obviously in full confidence of what he’s doing, he returned to the truck, started the engine, and drove away.

Dr. Watson (in astonishment): What just happened? Are Russian ditches filled with gasoline?

Holmes: Relax, dear Watson, it was ordinary ditch water. But I wouldn’t suggest drinking it.

Dr. Watson (still in disbelief): What, do their truck engines work on water, then?

Holmes: Of course not, it’s a regular Diesel engine.

Dr. Watson: Then how is that possible? If the truck was out of gas, how was it able to start back up after water was added to the tank?!

Who knew Sherlock Holmes had such engineering acumen!

Holmes: “Elementary, my dear Watson. The fuel intake pipe is raised a couple inches above the bottom of the gas tank. That produces the effect of seemingly running out of gas when the fuel falls below the pipe, even though there is still some gas left in the tank. Remember, oil and water don't mix.  When the truck driver poured a bucketful of water into the gas tank, that water – having a higher density than the Diesel fuel – settled in the bottom, pushing the fuel above the intake opening thus making it possible to pump it to the engine.”

After a long pause – longer than it usually takes to come to grips with reality – Dr. Watson whispered in bewilderment.

Dr. Watson: Я не понимаю, I don’t understand!

Then, still shaken, he asked the only logical question a normal person could possibly ask under the circumstances.

Dr. Watson: Why would they raise the fuel intake pipe from the tank bottom in the first place?

Holmes: Ah, Watson, it must be to make it foolproof. What if some fool decides to pour a bucket of water in the gas tank!

You May Also Like: Are you solving the wrong problem?

Are you developing foolproof solutions? was published on SAS Users.

5月 302018
 

Remember when electric vehicles were a new thing? Just a few years ago, everywhere we turned there were opinions, white papers, and articles espousing the wonders of electric vehicles, and an equal chorus of voices warning of the dangers and challenges of electric vehicles. Would they blow up half of [...]

How will electric vehicles contribute to the smart grid? was published on SAS Voices by Mike F. Smith

5月 302018
 

According to a recent Bloomberg article, this year the United States passed Hong Kong and Singapore to become the country with the world's most competitive economy! They say, "The U.S. dethroned Hong Kong to retake first place among the world's most competitive economies, thanks to faster economic growth and a [...]

The post Which country has the world's most competitive economy? appeared first on SAS Learning Post.

5月 302018
 

Why does your organization’s website or mobile app exist? What are you hoping to accomplish with your business by being digital? What are the most important priorities for your digital presence? Here are three goals that most organizations share: Sell more stuff. Make marketing more effective. Delight customers. Goals are [...]

SAS Customer Intelligence 360: Goals, propensity models, and machine learning was published on Customer Intelligence Blog.

5月 302018
 

Maybe you’ve heard of text analytics (or natural language processing) as a way to analyze consumer sentiment. Businesses often use these techniques to analyze customer complaints or comments on social media, to identify when a response is needed. But text analytics has far more to offer than examining posts on [...]

5 remarkable uses for text analytics was published on SAS Voices by Tom Sabo

5月 302018
 

SAS Enterprise Miner has been a leader in data mining and modeling for over 20 years. The system offers over 80 different nodes that help users analyze, score and model their data. With a wide range of functionalities, there can be a number of different ways to produce the results you want.

At SAS® Global Forum 2018, Principal Systems Engineer Melodie Rush spoke about her experience with SAS® Enterprise Miner™, and compiled a list of hints that she believe will help users of all levels. This article previews her full presentation, Top 10 Tips for SAS Enterprise Miner Based on 20 Years’ Experience. The paper includes images and further details of each of the tips noted below; I’d encourage you to check it out to learn more.

Top Ten Tips for Enterprise Miner

Tip 1: How to find the node you’re looking for

If you struggle finding the node that best fits what you need, there’s a system that can simplify it.

Nodes are organized by Sample, Explore, Modify, Model, and Assess. Find which of these best describes what you are trying to do, and scroll across each node alphabetically for a description.

Tip 2: Add node from diagram workspace

Double click any node on the toolbar to see its properties. An example of the results this presents are shown below:

Top Ten Tips for Enterprise Miner

Tip 3: Clone a process flow

Highlight process flow by dragging your mouse across, right-click or CTRL+C, and Paste or CTRL+V where you want to insert process flow.

Tip 4: New features

  • There’s a new tab, HPDM (High-Performance Data Mining), which contains several new nodes that cover data mining and machine learning algorithms.
  • There are two new nodes under Utility that incorporate Open Source and SAS Viya.
  • The Open Source Integration node allows you to use R language code in SAS Enterprise Miner diagrams.
  • A SAS Viya Code node now incorporates code that will be used in SAS Viya and CAS, and algorithms from SAS Visual Data Mining and Machine Learning.
  • To save and share your results, there are now the Register Model and Save Data nodes under Utility.
  • You can now register models to the SAS Metadata Server to score or compare easily.
  • A Save Data node lets you save training, validation, test, score, or transaction data as SAS, JMP, Excel, CSV or tab-delimited files.

Tip 5: The unknown node

The reporter node under Utility allows you to easily document your Enterprise Miner process flow diagrams. A .pdf or .rtf is created with an image of the process flow.

Tip 6: The node that changes everything

The Metadata node, on the Utility tab, allows you to change metadata information and values in your diagram. You also can capture settings to then apply to data in another diagram.

Tip 7: How to generate a scorecard

A scorecard emphasizes what variables and values from your model are important. Values are reported on a 0 to 1,000 scale, with the higher being more likely the event you’re measuring occurs. To do this, have the Reporter node follow a Score node, and then change the Nodes property to Summary under Reporter node properties.

Tip 8: How to override the 512 level limit

If faced with the error message, “Maximum target levels of 512 exceeded,” your input is resulting in more than 512 distinct results. To get around this, you need to change EM_TRAIN_MAXLEVELS to another value. To do so, either change the macro value in properties

or change the macro value in project start code.

Tip 9: Which variable selection method should I use?

Instead of choosing just one variable selection method, you can combine different ones such as Decision Trees, Forward, Chi-Square, and others. The results can be combined using different selection properties, such as None (no changes made from original metadata), Any (reject a variable if any previous variable selection nodes reject it), All (reject a variable if all of the previous variable selection nodes reject it), and Majority (reject a variable if the majority of the variable selection nodes reject it).

Tip 10: Interpreting neural network

Decision trees can be produced to interpret networks, by changing the Prediction variable to be your Target and the Target variable to be rejected.

Conclusion

With so many options to create models that best suit your preferences, these tips will help sharpen your focus and allow you to use SAS Enterprise Miner more efficiently and effectively. This presentation was one in a series of talks on Enterprise Miner tool presented at SAS® Global Forum 2018.

Additional Resources

SAS Enterprise Miner
SAS Enterprise Learning Tutorials
Getting Started With SAS Enterprise Miner Tutorial Videos

Additional SAS Enterprise Miner talks from Global Forum 2018

A Case Study of Mining Social Media Data for Disaster Relief: Hurricane Irma
Bogdan Gadidov, Linh Le, Analytics and Data Science Institute, Kennesaw State University

A Study of Modelling Approaches for Predicting Dropout in a Business College
Xuan Wang, Helmut Schneider, Louisiana State University

Analysis of Nokia Customer Tweets with SAS® Enterprise Miner™ and SAS® Sentiment Analysis Studio
Vaibhav Vanamala MS in Business Analytics, Oklahoma State University

Analysis of Unstructured Data: Topic Mining & Predictive Modeling using Text
Ravi Teja Allaparthi

Association Rule Mining of Polypharmacy Drug Utilization Patterns in Health Care Administrative Data Using SAS® Enterprise Miner™
Dingwei Dai, Chris Feudtner, The Children’s Hospital of Philadelphia

Bayesian Networks for Causal Analysis
Fei Wang and John Amrhein, McDougall Scientific Ltd.

Classifying and Predicting Spam Messages Using Text Mining in SAS® Enterprise Miner™
Mounika Kondamudi, Oklahoma State University

Image Classification Using SAS® Enterprise Miner 14.1

Model-Based Fiber Network Expansion Using SAS® Enterprise Miner™ and SAS® Visual Analytics
Nishant Sharma, Charter Communications

Monte Carlo K-Means Clustering SAS Enterprise Miner
Donald K. Wedding, PhD Director of Data Science Sprint Corporation

Retail Product Bundling – A new approach
Bruno Nogueira Carlos, Youman Mind Over Data

Using Market Basket Analysis in SAS® Enterprise MinerTM to Make Student Course Enrollment Recommendations
Shawn Hall, Aaron Osei, and Jeremiah McKinley, The University of Oklahoma

Using SAS® Enterprise Miner for Categorization of Customer Comments to Improve Services at USPS
Olayemi Olatunji, United States Postal Service Office of Inspector General

Top 10 tips for SAS Enterprise Miner based on 20 years’ experience was published on SAS Users.

5月 302018
 

SAS Enterprise Miner has been a leader in data mining and modeling for over 20 years. The system offers over 80 different nodes that help users analyze, score and model their data. With a wide range of functionalities, there can be a number of different ways to produce the results you want.

At SAS® Global Forum 2018, Principal Systems Engineer Melodie Rush spoke about her experience with SAS® Enterprise Miner™, and compiled a list of hints that she believe will help users of all levels. This article previews her full presentation, Top 10 Tips for SAS Enterprise Miner Based on 20 Years’ Experience. The paper includes images and further details of each of the tips noted below; I’d encourage you to check it out to learn more.

Top Ten Tips for Enterprise Miner

Tip 1: How to find the node you’re looking for

If you struggle finding the node that best fits what you need, there’s a system that can simplify it.

Nodes are organized by Sample, Explore, Modify, Model, and Assess. Find which of these best describes what you are trying to do, and scroll across each node alphabetically for a description.

Tip 2: Add node from diagram workspace

Double click any node on the toolbar to see its properties. An example of the results this presents are shown below:

Top Ten Tips for Enterprise Miner

Tip 3: Clone a process flow

Highlight process flow by dragging your mouse across, right-click or CTRL+C, and Paste or CTRL+V where you want to insert process flow.

Tip 4: New features

  • There’s a new tab, HPDM (High-Performance Data Mining), which contains several new nodes that cover data mining and machine learning algorithms.
  • There are two new nodes under Utility that incorporate Open Source and SAS Viya.
  • The Open Source Integration node allows you to use R language code in SAS Enterprise Miner diagrams.
  • A SAS Viya Code node now incorporates code that will be used in SAS Viya and CAS, and algorithms from SAS Visual Data Mining and Machine Learning.
  • To save and share your results, there are now the Register Model and Save Data nodes under Utility.
  • You can now register models to the SAS Metadata Server to score or compare easily.
  • A Save Data node lets you save training, validation, test, score, or transaction data as SAS, JMP, Excel, CSV or tab-delimited files.

Tip 5: The unknown node

The reporter node under Utility allows you to easily document your Enterprise Miner process flow diagrams. A .pdf or .rtf is created with an image of the process flow.

Tip 6: The node that changes everything

The Metadata node, on the Utility tab, allows you to change metadata information and values in your diagram. You also can capture settings to then apply to data in another diagram.

Tip 7: How to generate a scorecard

A scorecard emphasizes what variables and values from your model are important. Values are reported on a 0 to 1,000 scale, with the higher being more likely the event you’re measuring occurs. To do this, have the Reporter node follow a Score node, and then change the Nodes property to Summary under Reporter node properties.

Tip 8: How to override the 512 level limit

If faced with the error message, “Maximum target levels of 512 exceeded,” your input is resulting in more than 512 distinct results. To get around this, you need to change EM_TRAIN_MAXLEVELS to another value. To do so, either change the macro value in properties

or change the macro value in project start code.

Tip 9: Which variable selection method should I use?

Instead of choosing just one variable selection method, you can combine different ones such as Decision Trees, Forward, Chi-Square, and others. The results can be combined using different selection properties, such as None (no changes made from original metadata), Any (reject a variable if any previous variable selection nodes reject it), All (reject a variable if all of the previous variable selection nodes reject it), and Majority (reject a variable if the majority of the variable selection nodes reject it).

Tip 10: Interpreting neural network

Decision trees can be produced to interpret networks, by changing the Prediction variable to be your Target and the Target variable to be rejected.

Conclusion

With so many options to create models that best suit your preferences, these tips will help sharpen your focus and allow you to use SAS Enterprise Miner more efficiently and effectively. This presentation was one in a series of talks on Enterprise Miner tool presented at SAS® Global Forum 2018.

Additional Resources

SAS Enterprise Miner
SAS Enterprise Learning Tutorials
Getting Started With SAS Enterprise Miner Tutorial Videos

Additional SAS Enterprise Miner talks from Global Forum 2018

A Case Study of Mining Social Media Data for Disaster Relief: Hurricane Irma
Bogdan Gadidov, Linh Le, Analytics and Data Science Institute, Kennesaw State University

A Study of Modelling Approaches for Predicting Dropout in a Business College
Xuan Wang, Helmut Schneider, Louisiana State University

Analysis of Nokia Customer Tweets with SAS® Enterprise Miner™ and SAS® Sentiment Analysis Studio
Vaibhav Vanamala MS in Business Analytics, Oklahoma State University

Analysis of Unstructured Data: Topic Mining & Predictive Modeling using Text
Ravi Teja Allaparthi

Association Rule Mining of Polypharmacy Drug Utilization Patterns in Health Care Administrative Data Using SAS® Enterprise Miner™
Dingwei Dai, Chris Feudtner, The Children’s Hospital of Philadelphia

Bayesian Networks for Causal Analysis
Fei Wang and John Amrhein, McDougall Scientific Ltd.

Classifying and Predicting Spam Messages Using Text Mining in SAS® Enterprise Miner™
Mounika Kondamudi, Oklahoma State University

Image Classification Using SAS® Enterprise Miner 14.1

Model-Based Fiber Network Expansion Using SAS® Enterprise Miner™ and SAS® Visual Analytics
Nishant Sharma, Charter Communications

Monte Carlo K-Means Clustering SAS Enterprise Miner
Donald K. Wedding, PhD Director of Data Science Sprint Corporation

Retail Product Bundling – A new approach
Bruno Nogueira Carlos, Youman Mind Over Data

Using Market Basket Analysis in SAS® Enterprise MinerTM to Make Student Course Enrollment Recommendations
Shawn Hall, Aaron Osei, and Jeremiah McKinley, The University of Oklahoma

Using SAS® Enterprise Miner for Categorization of Customer Comments to Improve Services at USPS
Olayemi Olatunji, United States Postal Service Office of Inspector General

Top 10 tips for SAS Enterprise Miner based on 20 years’ experience was published on SAS Users.

5月 292018
 

The SAS language provides syntax that enables you to quickly specify a list of variables. SAS statements that accept variable lists include the KEEP and DROP statements, the ARRAY statement, and the OF operator for comma-separated arguments to some functions. You can also use variable lists on the VAR statements and MODEL statements of analytic procedures.

This article describes six ways to specify a list of variables in SAS. There is a section in the SAS documentation that describes how to construct lists, but this blog post provides more context and a cut-and-paste example for every syntax. This article demonstrates the following:

  • Use the _NUMERIC_, _CHARACTER_, and _ALL_ keywords to specify variables of a certain type (numeric or character) or all types.
  • Use a single hyphen (-) to specify a range of variables that have a common prefix and a sequential set of numerical suffixes.
  • Use the colon operator (:) to specify a list of variables that begin with a common prefix.
  • Use a double-hyphen (--) to specify a consecutive set of variables, regardless of type. You can also use a variation of this syntax to specify a consecutive set of variables of a certain type (numeric or character).
  • Use the OF operator to specify variables in an array or in a function call.
  • Use macro variables to specify variables that satisfy certain characteristics.

Some companies might discourage the use of variable lists in production code because automated lists can be volatile. If the number and names of variables in your data sets occasionally change, it is safer to manually list the variables that you are analyzing. However, for developing code and constructing examples, lists can be a huge time saver.

Use the _NUMERIC_, _CHARACTER_, and _ALL_ keywords

You can specify all numeric variables in a data set by using the _NUMERIC_ keyword. You can specify all character variables by using the _CHARACTER_ keyword. Many SAS procedures use a VAR statement to specify the variables to be analyzed. When you want to analyze all variables of a certain type, you can use these keywords, as follows:

/* compute descriptive statistics of allnumeric variables */
proc means data=Sashelp.Heart nolabels; 
   var _NUMERIC_;          /* _NUMERIC_ is the default */
run;
 
/* display the frequencies of all levels for all character variables */
proc freq data=Sashelp.Heart; 
   tables _CHARACTER_;    /* _ALL_ is the defaul */
run;
Use a keyword to specify a list of variables in SAS

One of my favorite SAS programming tricks is to use these keywords in a KEEP or DROP statement (or data set option). For example, the following statements create a new data set that contains all numeric variables and two character variables from the Sashelp.Heart data:

data HeartNumeric;
set Sashelp.Heart(keep=_NUMERIC_            /* all numeric variables */
                       Sex Smoking_Status); /* two character variables */
run;

An example of using the _ALL_ keyword is shown in the section that discusses the OF operator.

Use a hyphen to specify numerical suffixes

In many situations, variables are named with a common prefix and numerical suffix. For example, financial data might have variables that are named Sales2008, Sales2009, ..., Sales2017. In simulation studies, variables often have names such as X1, X2, ..., X50. The hyphen enables you to specify the first and last variable in a list. The first example can be specified as Sales2008-Sales2017. The second example is X1-X50.

The following DATA step creates 10 variables, including the variables x1-x6. Notice that the data set variables are not in alphanumeric order. That is okay. The syntax x1-x6 will select the six variables x1, x2, x3, x4, x5, and x6 regardless of their physical order in the data. The call to PROC REG uses the six variables in a linear regression:

data A;
   retain Y x1 x3 Z x6 x5 x2 W x4 R;  /* create 10 variables and one observation. Initialize to 0 */
run;
proc reg data=A plots=none;
   model Y = x1-x6;
run;

The parameter estimates from PROC REG are displayed in the order that you specify in the MODEL statement. However, if you use the SET statement in a DATA step, the variables appear in the original order unless you intentionally reorder the variables:

data B;
   set A(keep=x1-x6);
run;

Use the colon operator to specify a prefix

If you want to use variables that have a common prefix but have a variety of suffixes, you can use the colon operator (:), which is a wildcard character that matches any name that begins with a specified prefix. For example, the following DATA step creates a data set that contains 10 variables, including five variables that begin with the prefix 'Sales'. The subsequent DATA step drops the variables that begin with the prefix 'Sales':

data A;
retain Sales17 Y Sales16 Z SalesRegion Sales_new Sales1 R; /* 1 obs. Initialize to 0 */
run;
 
data B;
   set A(drop= Sales: ); /* drop all variables that begin with 'Sales' */
run;

Use a double-hyphen to specify consecutive variables

The previous sections used wildcard characters to match variables that had a specified type or prefix. In the previous sections, you will get the same set of variables regardless of how they might be ordered in the data set. You can use a double-hyphen (--) to specify a consecutive set of variables. The variables you get depend on the order of the variables in the data set.

data A;
   retain Y 0   x3 2   C1 'A'   C2 'BC'
          Z 3   W  4   C4 'D'   C5 'EF'; /* Initialize eight variables */
run;
data B;
   set A(keep=x3--C4);
run;

In this example, the data set B contains the variables x3, C1, C2, Z, W, and C4. If you use the double-hyphen to specify a list, be sure that you know the order of the variables and that this order is never going to change. If the order of the variables changes, your program will behave differently.

You can also specify all variables of a certain type within a range of variables. The syntax Y-numeric-Z specifies all numeric variables between Y and Z in the data set. The syntax Y-character-Z specifies all character variables between Y and Z. For example, the following call to PROC CONTENTS displays the variables (in order) in the Sashelp.Heart data. The call to PROC LOGISTIC specifies all the numeric variables between (and including) the AgeCHDiag variable and the Smoking variable:

proc contents data=Sashelp.Heart order=varnum ;
run;
 
proc logistic data=Sashelp.Heart;
   model status = AgeCHDdiag-numeric-Smoking;
   ods select ParameterEstimates;
run;
Use a double-hyphen to specify a contiguous list of variables in SAS

Arrays and the OF operator

You can use variable lists to assign an array in a SAS DATA step. For example, the following program creates a numerical array named X and a character array named C. The program finds the maximum value in each row and puts that value into the variable named rowMaxNUm. The program also creates a variable named Str that contains the concatenation of the character values for each row:

data Arrays;
   set sashelp.Class;
   array X {*} _NUMERIC_;        /* X[1] is 1st var, X[2] is 2nd var, etc */
   array C {*} _CHARACTER_;      /* C[1] is 1st var, C[2] is 2nd var, etc */
   /* use the OF operator to pass values in array to functions */
   rowMaxNum = max(of x[*]);     /* find the max value in this array (row) */
   length Str $30;
   call catx(' ', Str, of C[*]); /* concatenate the strings in this array (row) */
   keep rowMaxNum Str;
run;
 
proc print data=Arrays(obs=4);
run;
Use a keyword to specify a list of variables to certain SAS functions

You can use the OF operator directly in functions without creating an array. For example, the following program uses the _ALL_ keyword to output the "complete cases" for the Sashelp.Heart data. The program drops any observation that has a missing value for any variable:

data CompleteCases;
  set Sashelp.Heart;
  if cmiss(of _ALL_)=0;  /* output only complete cases for all vars */
run;

Use macro variables to specify a list

The previous sections demonstrate how you can use syntax to specify a list of variables to SAS statements. In contrast, this section describes a technique rather than syntax. It is sometimes the case that the names of variables are in a column in a data set. There might be other columns in the data set that contain characteristics or statistics for the variables. For example, the following call to PROC MEANS creates an output data set (called MissingValues) that contains columns named Variable and NMiss.

proc means data=Sashelp.Heart nolabels NMISS stackodsoutput;
   var _NUMERIC_;
   ods output Summary = MissingValues;
run;
proc print; run;
Use a macro variable to specify a list of variables in SAS

Suppose you want to keep or drop those variables that have one or more missing values. The following PROC SQL call creates a macro variable (called MissingVarList) that contains a space-separated list of all variables that have at least one missing value. This technique has many applications and is very powerful.

/* Use PROC SQL to create a macro variable (MissingVarList) that contains
   the list of variables that have a property such as missing values */
proc sql noprint;                              
 select Variable into :MissingVarList separated by ' '
 from MissingValues
 where NMiss > 0;
quit;
%put &=MissingVarList;
MISSINGVARLIST=AgeCHDdiag Height Weight MRW Smoking AgeAtDeath Cholesterol

You can now use the macro variable in a KEEP, DROP, VAR, or MODEL statement, such as KEEP=&MissingVarList;

Summary

This article shows six ways to specify a list of variables to SAS statements and functions. The SAS syntax provides keywords (_NUMERIC_, _CHARACTER_, and _ALL_) and operators (hyphen, colon, and double-hyphen) to make it easy to specify a list of variables. You can use the syntax in conjunction with the OF operator to pass a variable list to some SAS functions. Lastly, if the names of variables are stored in a column in a data set, you can use the full power of PROC SQL to create a macro variable that contains variables that satisfy certain criteria.

Do you use shorthand syntax to specify lists of variables? Why or why not? Leave a comment.

The post 6 easy ways to specify a list of variables in SAS appeared first on The DO Loop.

5月 252018
 

Have you ever tried to plot data on a map of Antarctica ... and been thoroughly frustrated or confused?!? If you're that person, or even a seasoned map maker wanting to hone your skills, then this blog post is for you! But first, here is a picture to get you [...]

The post Plotting data on Antarctica - a mapping challenge! appeared first on SAS Learning Post.

5月 242018
 

Poverty. It's a bit difficult to define who lives in poverty - I guess it's a relative thing, and depends on the standard of living of the people around you. Today we're going to take a look at the child poverty rates in several 'rich' countries (such as the United [...]

The post Comparing child poverty in 26 rich countries appeared first on SAS Learning Post.