mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-30 05:07:48 +00:00
Starting on new R graphics scheme
This commit is contained in:
parent
a871c6a77c
commit
607efd4e30
21
lisp/ob-R.el
21
lisp/ob-R.el
|
@ -51,21 +51,28 @@
|
||||||
(defvar org-babel-R-command "R --slave --no-save"
|
(defvar org-babel-R-command "R --slave --no-save"
|
||||||
"Name of command to use for executing R code.")
|
"Name of command to use for executing R code.")
|
||||||
|
|
||||||
(defun org-babel-expand-body:R (body params)
|
(defun org-babel-expand-body:R (body params &optional graphics-file)
|
||||||
"Expand BODY according to PARAMS, return the expanded body."
|
"Expand BODY according to PARAMS, return the expanded body."
|
||||||
(let ((out-file (cdr (assoc :file params))))
|
(let ((graphics-file
|
||||||
|
(or graphics-file (org-babel-R-graphical-output-file params))))
|
||||||
(mapconcat
|
(mapconcat
|
||||||
#'identity
|
#'identity
|
||||||
((lambda (inside)
|
((lambda (inside)
|
||||||
(if out-file
|
(if graphics-file
|
||||||
(append
|
(append
|
||||||
(list (org-babel-R-construct-graphics-device-call out-file params))
|
(list (org-babel-R-construct-graphics-device-call
|
||||||
|
graphics-file params))
|
||||||
inside
|
inside
|
||||||
(list "dev.off()"))
|
(list "dev.off()"))
|
||||||
inside))
|
inside))
|
||||||
(append (org-babel-variable-assignments:R params)
|
(append (org-babel-variable-assignments:R params)
|
||||||
(list body))) "\n")))
|
(list body))) "\n")))
|
||||||
|
|
||||||
|
(defun org-babel-R-graphical-output-file (params)
|
||||||
|
"Name of file to which R should send graphical output."
|
||||||
|
(and (member "graphics" (cdr (assq :result-params params)))
|
||||||
|
(cdr (assq :file params))))
|
||||||
|
|
||||||
(defun org-babel-execute:R (body params)
|
(defun org-babel-execute:R (body params)
|
||||||
"Execute a block of R code.
|
"Execute a block of R code.
|
||||||
This function is called by `org-babel-execute-src-block'."
|
This function is called by `org-babel-execute-src-block'."
|
||||||
|
@ -75,8 +82,8 @@ This function is called by `org-babel-execute-src-block'."
|
||||||
(cdr (assoc :session params)) params))
|
(cdr (assoc :session params)) params))
|
||||||
(colnames-p (cdr (assoc :colnames params)))
|
(colnames-p (cdr (assoc :colnames params)))
|
||||||
(rownames-p (cdr (assoc :rownames params)))
|
(rownames-p (cdr (assoc :rownames params)))
|
||||||
(out-file (cdr (assoc :file params)))
|
(graphics-file (org-babel-R-graphical-output-file params))
|
||||||
(full-body (org-babel-expand-body:R body params))
|
(full-body (org-babel-expand-body:R body params graphics-file))
|
||||||
(result
|
(result
|
||||||
(org-babel-R-evaluate
|
(org-babel-R-evaluate
|
||||||
session full-body result-type
|
session full-body result-type
|
||||||
|
@ -87,7 +94,7 @@ This function is called by `org-babel-execute-src-block'."
|
||||||
(org-babel-pick-name
|
(org-babel-pick-name
|
||||||
(cdr (assoc :rowname-names params)) rownames-p)))))
|
(cdr (assoc :rowname-names params)) rownames-p)))))
|
||||||
(message "result is %S" result)
|
(message "result is %S" result)
|
||||||
(or out-file result))))
|
(if graphics-file nil result))))
|
||||||
|
|
||||||
(defun org-babel-prep-session:R (session params)
|
(defun org-babel-prep-session:R (session params)
|
||||||
"Prepare SESSION according to the header arguments specified in PARAMS."
|
"Prepare SESSION according to the header arguments specified in PARAMS."
|
||||||
|
|
Loading…
Reference in a new issue