Hi Rainer, I have not tested the patch (I rarely use :var), but here are some comments from reading the patch.
2014ko ekainak 19an, Rainer M Krug-ek idatzi zuen: > > Hi > > This patch should fix the problem of tangling with variable transfer of > tables. It uses a textConection() instead of a file to transfer the > table. This results in variable transfer of variables in R, without > having to include additional files. > > Hope this does not work only for me. > > From f77e982e17909f2098974356c304bd29db04da79 Mon Sep 17 00:00:00 2001 > From: "Rainer M. Krug" <r.m.k...@gmail.com> > Date: Thu, 19 Jun 2014 22:03:46 +0200 > Subject: [PATCH] lisp/ob-R.el: Fix tangling with tables > > * lisp/ob-R.el (org-babel-R-assign-elisp): Fix variable transfer of > tables by using text connections in R instead of files. Variable > transfer of tables does not depend on files anymore, i.e. works also > when tangling. The changelog comment should not be indented on the subsequent lines. I believe the standard is also to double-space after sentence-ending periods. > --- > lisp/ob-R.el | 13 ++++--------- > 1 file changed, 4 insertions(+), 9 deletions(-) > > diff --git a/lisp/ob-R.el b/lisp/ob-R.el > index a3ae1ec..88f65f3 100644 > --- a/lisp/ob-R.el > +++ b/lisp/ob-R.el > @@ -190,25 +190,20 @@ This function is called by > `org-babel-execute-src-block'." > (if (listp value) > (let* ((lengths (mapcar 'length (org-remove-if-not 'sequencep value))) > (max (if lengths (apply 'max lengths) 0)) > - (min (if lengths (apply 'min lengths) 0)) > - (transition-file (org-babel-temp-file "R-import-"))) > + (min (if lengths (apply 'min lengths) 0))) > ;; Ensure VALUE has an orgtbl structure (depth of at least 2). > (unless (listp (car value)) (setq value (list value))) > - (with-temp-file transition-file > - (insert > - (orgtbl-to-tsv value '(:fmt org-babel-R-quote-tsv-field)) > - "\n")) > - (let ((file (org-babel-process-file-name transition-file 'noquote)) > + (let ((file (orgtbl-to-tsv value '(:fmt org-babel-R-quote-tsv-field))) As a cosmetic issue, you might want to pick a different name for this variable now that it no longer holds a file name. > (header (if (or (eq (nth 1 value) 'hline) colnames-p) > "TRUE" "FALSE")) > (row-names (if rownames-p "1" "NULL"))) > (if (= max min) > - (format "%s <- read.table(\"%s\", > + (format "%s <- read.table(textConnection('%s'), This will fail if ‘file’ contains an apostrophe character. I guess you need to escape apostrophes in ‘file’. HTH, -- Aaron Ecay