From 38d6bf3f6cacc74bb6056357e0eced0ec90b2a28 Mon Sep 17 00:00:00 2001 From: Dan Davison Date: Thu, 8 Apr 2010 15:26:08 -0400 Subject: [PATCH] babel: allow assigning of variables when preparing R session This is already in place for other languages, but seems to have been forgotten for R. --- contrib/babel/lisp/langs/org-babel-R.el | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/contrib/babel/lisp/langs/org-babel-R.el b/contrib/babel/lisp/langs/org-babel-R.el index 494fbf3ac..b571558fb 100644 --- a/contrib/babel/lisp/langs/org-babel-R.el +++ b/contrib/babel/lisp/langs/org-babel-R.el @@ -59,8 +59,14 @@ called by `org-babel-execute-src-block'." (defun org-babel-prep-session:R (session params) "Prepare SESSION according to the header arguments specified in PARAMS." (let* ((session (org-babel-R-initiate-session session params)) - (vars (org-babel-ref-variables params))) - (mapc (lambda (pair) (org-babel-R-assign-elisp session (car pair) (cdr pair))) vars) + (vars (org-babel-ref-variables params)) + (var-lines + (mapcar + (lambda (pair) (org-babel-R-assign-elisp (car pair) (cdr pair))) vars))) + (org-babel-comint-in-buffer session + (mapc (lambda (var) + (move-end-of-line 1) (insert var) (comint-send-input nil t) + (org-babel-comint-wait-for-output session)) var-lines)) session)) (defun org-babel-load-session:R (session body params) @@ -81,7 +87,7 @@ called by `org-babel-execute-src-block'." (format "%S" s))) (defun org-babel-R-assign-elisp (name value) - "Read the elisp VALUE into a variable named NAME." + "Construct R code assigning the elisp VALUE to a variable named NAME." (if (listp value) (let ((transition-file (make-temp-file "org-babel-R-import"))) ;; ensure VALUE has an orgtbl structure (depth of at least 2)