Example code and materials that illustrate techniques for integrating SAS with popular open source analytics technologies like Python and R.
See individual subdirectories for specific examples and instructions.
Contributors include: Patrick Hall, Radhikha Myneni, Ruiwen Zhang, and Tim Haley
The example materials in this repository use two approaches to call functionality in other languages from a SAS® session.
- The Base SAS® Java Object
- SAS/IML® Integration with R
The Base SAS Java Object
The Base SAS Java Object is a SAS DATA step component that enables Java objects to be instantiated, object methods to be called, and results to be returned from Java to SAS. The SASJavaExec.java class in this repository is designed to call executable files from SAS with command line arguments and reports STDOUT and STDERR back to the SAS log. Example materials in this repository use the SASJavaExec.java class to call R and Python scripts, but the class could be used to call other types of executables as well.
Using the Base SAS Java Object to call R or Python
- White Paper on Open Source Integration using the Base SAS Java Object
- White Paper on Connecting Java to SAS Data Sets
Using Python inside of SAS® Enterprise Miner™
- SAS Communities Tip: How to execute a Python script in SAS Enterprise Miner
- Video on How to Execute a Python Script in SAS Enterprise Miner
SAS/IML Integration with R
SAS/IML Integration with R enables data to be transferred between SAS and R and it enables calling statements from the R language from within a SAS session. One important consideration with R is its ability, much like SAS', to generate Predictive Modeling Markup Langauge (PMML) to encapsulate the logic of predictive models in a portable format. The example materials in this repository use R to train models and PMML as a portable deployment mechanism. The Enterprise Miner Open Source Integration node is based on the same technologies.