On Sun, Apr 5, 2020 at 1:19 PM Berry, Charles <ccbe...@health.ucsd.edu>
wrote:

>
>
> > On Apr 4, 2020, at 4:27 PM, Matt Price <mopto...@gmail.com> wrote:
> >
> > Does anyone know much about the difference between an R session opened
> by typing M-x R, and the R session opened by org-babel?
>
>
> Short answer: almost none.
>
> Long answer: what `org-babel-R-initite-session' and friends do.
>
:-) thanks, I should have been looking for that

>
> >
> > I'm just learning R and my usual method for learning a language is to
> keep a kind of notebook in org with code snippets they I can execute and
> iterate on rapidly as I learn. This works great in R when I'm just doing
> math.  When I am working on plots, it would be nice to have them open up
> quickly either in emacs or in the standard x11 window that R session opened
> switch M-x R opens up.
> >
> > I know I can set the src block headers to produ e a file, but when I'm
> just iterating rapidly I often switch back and forth between a data output
> and a graphical output, and typing/erasing those headers is clunky and
> slow. It would be easier to just paste the plot command into the console
> and have it pop open the window... But that doesn't seem to work. Anyone
> know if I can tweak something to make that possible?
> >
>
>
> I sam really puzzled by this. Do you have an ECM that illustrates this?
>
> Working interactively on my Mac (Quartz - X11 is the device), I routinely
> do what you describe - usually working from the src edit buffer - and the
> plots are displayed (and older plots are available via clover-left or some
> such).
>
> If I had to guess, I'd say that you are opening an R session, but not
> using it. If you execute a src block, but it does not have a `:session'
> header, a new instance of R will create a plot file and then exit. If you
> look in the default directory, you would see `Rplots.pdf' or some such.
>
> The only other thing that comes to mind is that you opened a device that
> is holding on to all your plots. Try `dev.cur()' in R immediately before
> and after you create a plot and see what the result is.
>
> This was the problem. I don't see that I'm calling dev.set() anywhere but
when the session initiates dev.cur() returns

null
     1

calling dev.set(1) or dev.set(2) launches an R_x11 window and future plots
are displayed there.  As I say, I'm just learning R, and I don't really
understand how the device is set up. I also don't understand why it would
be set to X11 in a plain-old R session, but not in an org-babel R session.
Most references to "device" in ~ob-R.el~ seem to be managing file outputs,
and "X11". For now I don't think I'll explore  a proper solution as I'm
already pretty far down a rabit hole just learning R at all!  But thanks
very much for this workaround.

Matt

> HTH,
>
> Chuck
>
>
>

Reply via email to