Evaluating R files from Clojure
We might not always want to feed R code from Clojure directly into R. Many times, we might have files containing R expressions and we would want to evaluate the whole file.
We can do this quite easily too. Let's see how.
Getting ready
We must first complete the recipe, Setting up R to talk to Clojure, and have Rserve running. We must also have the Clojure-specific parts of that recipe done and the connection to Rserve made.
Moreover, we'll need access to the java.io.File
class:
(import '[java.io File])
How to do it…
We'll first define a function to make evaluating a file in R easier, and then we'll find a file and execute it:
The function to evaluate a file of R code takes a filename and (optionally) a connection to the R server. It feeds the file to R using R's
source
function, and it returns whatever R does:(defn r-source ([filename] (r-source filename *r-cxn*)) ([filename r-cxn] (.eval r-cxn (str "source(\"" (.getAbsolutePath (File....