Prechádzať zdrojové kódy

R know how to prep and pop-to sessions

Eric Schulte 16 rokov pred
rodič
commit
88048186ac
2 zmenil súbory, kde vykonal 15 pridanie a 4 odobranie
  1. 8 2
      lisp/langs/org-babel-R.el
  2. 7 2
      org-babel.org

+ 8 - 2
lisp/langs/org-babel-R.el

@@ -63,6 +63,14 @@ called by `org-babel-execute-src-block'."
           (list (list results))
         results))))
 
+(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))
+         (vars (org-babel-ref-variables params)))
+    (mapc (lambda (pair) (org-babel-R-assign-elisp session (car pair) (cdr pair))) vars)))
+
+;; helper functions
+
 (defun org-babel-R-quote-tsv-field (s)
   "Quote field S for export to R."
   (if (stringp s)
@@ -86,8 +94,6 @@ R process in `org-babel-R-buffer'."
 		 name transition-file))
      (format "%s <- %s" name (org-babel-R-quote-tsv-field value)))))
 
-;; functions for comint evaluation
-
 (defun org-babel-R-initiate-session (session)
   "If there is not a current R process then create one."
   (setq session (or session "*R*"))

+ 7 - 2
org-babel.org

@@ -664,7 +664,7 @@ a + b
 a + b
 #+end_src
 
-*** TODO function to bring up inferior-process buffer [2/4]
+*** TODO function to bring up inferior-process buffer [3/4]
 
 This should be callable from inside of a source-code block in an
 org-mode buffer.  It should evaluate the header arguments, then bring
@@ -686,8 +686,13 @@ num.times{|n| puts another}
 #+begin_src python :var num=9 :var another="something else"
 another * num
 #+end_src
+**** DONE R
+
+#+srcname: task-R-pop-to-session
+#+begin_src R :var a=9 :var b=8
+a * b
+#+end_src
 
-**** TODO R
 **** TODO shell
 *** TODO function to dump last N lines from inf-proc buffer into the current source block