"Charles C. Berry" writes: > On Mon, 23 Jun 2014, Rainer M Krug wrote: > >> "Charles C. Berry" writes: >> >> V> On Fri, 20 Jun 2014, Rainer M Krug wrote: >>> >>>> Attached please find =the reworked patch. >>>> >>>> 1) uses local() and closes connection >>>> 2) does not leave a variable cal;led file behind >>>> >>> > > [deleted] > >> >> OK - attached please find two patches: >> >> 0001-lisp-ob-R.el-Fix-tangling-with-tables.patch >> 0002-Make-transfer-of-values-from-R-type-aware.patch >> >> The first one fixes tangling with tables including discussed >> suggestions, the second one moves the definition of the R code into >> defconst and introduces type awareness for the transfer of *values*, but >> not tables. I reworked your suggestion and now integer are transferred >> to R as integers (L) and float as double. >> This already worked for tables. >> >> Could you please check the second patch? In my checks everything worked >> as expected. > > I think these are good to go. Great - Eric - could you apply them if you are happy as well? > > I checked several cases and all seemed to work as expected. Good to know. > > Some comments on this and your recent posts in this thread: > > I see you took the suggestion to use (prin1-to-string value) on the > 'left-over' objects. With that stuff like :var x=[1 2 3] will work. :-) > > The only failure I could trigger was with this block: > > #+BEGIN_SRC R :session :var x=(org-export-get-backend 'latex) > x > #+END_SRC > > which triggered 'Eval buffer', added a bunch of ^G's to my session log, > and hung until I ran C-g (keyboard-quit). > > When run with :session none, it works. I suspected the long string tripped > over a limitation or bug in iESS-mode or comint-mode, but this runs: Am I wrong, or is this a rather unusual usage scenario? When I copy the command executed into an R session outside emacs/ESS, it gives me a new line with a +, so the command is not complete and requires a " to complete. But then the vartiable only contains a part of the string. So I guess there is a problem with escaping the string. When I paste it into an R session in emacs, I get these ^G. Given that your example below (with a more usual variable?) works, and the error above is also present when using the actual implementation of the variable transfer, I would leave it as an unsolved mystery and investigate afterwards. Cheers, Rainer > > #+BEGIN_SRC R :session :var x=(append (make-vector 10000 '(1 2)) '((1 2 3))) > :results output > summary(x) > #+END_SRC > > so I am not sure what gives. > > Chuck > -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Stellenbosch University South Africa Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 59 98 Fax : +33 - (0)9 58 10 27 44 Fax (D): +49 - (0)3 21 21 25 22 44 email: Rainer@krugs.de Skype: RMkrug PGP: 0x0F52F982