For those using R with JMP, JMP 19 brings a rewrite of the R integration. Please checkout EA-7 and higher. It is still being polished up and finalized. The updated R integration is now built on top of the Python Integration using a jmpex package supplied as part of our Sample Scripts/Python. This is a pure Python package that utilizes rpy2 package to marshal between JMP, Python, and R. This gives you a familiar API from Python that mimics the JSL interface. The JSL interface now calls through to the jmpex package. Given that we are publishing the package as a sample, you have the ability to tinker with the code yourself, or just see how it works. If there is something critical that I missed, you have the capability to fix it before we are able to address with another JMP release. The jmpex package supports both the JSL and Python interfaces. The jmpex package also serves as an example on creating an installable Python package.
Feedback on bug fixes and enhancements is welcome.
In JMP 18 and earlier, all interaction, every JSL R command caused an interchange file to be written to the filesystem. Which was then accessed by the process calling R. Everything went through the filesystem. Using rpy2 all transfers and interactions now occur in memory. There are some minimal deprecations of the JSL interface due to running one top of the Python Integration, and differences between rpy2 and the previous external process that interacted with R.
The scripting index has been updated in 19 for the JSL functionality and the jmpex package.
You need to have R installed and R_HOME environment variable set before installing jmpex or running R Init() the first time. R Init() will automatically make the attempt to install jmpex from the SAMPLE_SCRIPTS/Python directory if not already installed. Python user's will need to either run R Init() once or use jmputils.jpip() to install the jmpex.zip file.
import jmp
import os
from jmputils import jpip
jpip('install', [ os.path.join(jmp.SAMPLE_SCRIPTS, 'Python', 'jmpex.zip') ] )