emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Berry, Charles" <ccberry@ucsd.edu>
To: Seb <spluque@gmail.com>
Cc: "emacs-orgmode@gnu.org" <emacs-orgmode@gnu.org>
Subject: Re: R source code block :session
Date: Sun, 30 Sep 2018 18:03:45 +0000	[thread overview]
Message-ID: <CBB7ED8D-286D-471C-8848-60B102684218@ucsd.edu> (raw)
In-Reply-To: <87wor3ko9i.fsf@gmail.com>



> On Sep 30, 2018, at 8:18 AM, Seb <spluque@gmail.com> wrote:
> 
> Hello,
> 
> I'm running into a couple of issues with R source code blocks using
> :session :
> 
> ---<--------------------cut here---------------start------------------->---
> #+NAME: test01
> #+BEGIN_SRC R :session :results output
> library(ascii)
> numstbl <- table(1:4, 1:4)
> summary(numstbl)
> #+END_SRC
> 
> #+RESULTS: test01
> : R> Number of cases in table: 4
> : Number of factors: 2
> : Test for independence of all factors:
> : 	Chisq = 12, df = 9, p-value = 0.2
> : 	Chi-squared approximation may be incorrect
> ---<--------------------cut here---------------end--------------------->---
> 
> Notice the "R> " prompt that prefixes the actual output.  

The issue is that babel has to clean up dangling prompts from the R session buffer and is currently not smart enough to do this in your case.

Somebody who is well versed in regex's might be able to compare the regex that ess sets in the session buffer

	"^[]a-zA-Z0-9.[]*\\(?:[>+.] \\)*> "

and compare that to the current regex just after `;; cleanup extra prompts left in output' in org-babel-R-evaluate-session	

	"^\\([>+.]\\([ ][>.+]\\)*[ ]\\)"

and propose a fix that handles your case.  

However, this is bound to be a bit *fragile* as arbitrary prompts might end up looking like bona fide output and vice versa.

I think your easiest path forward is to use the default R prompt. Or maybe use these header args:

	:session :results value drawer :prologue "capture.output({" :epilogue "})"

> If the first
> line (`library` call) is removed, then the prompt is correctly excluded
> from the results output.  I do have `options(prompt="R> ")` in my
> ~/.Rprofile.
> 
> The other problem:
> 
> ---<--------------------cut here---------------start------------------->---
> #+NAME: test02
> #+BEGIN_SRC R :results output org
> library(ascii)
> options(asciiType="org")
> ascii(summary(table(1:4, 1:4)))
> #+END_SRC
> 
> #+RESULTS: test02
> #+BEGIN_SRC org
> - Number of cases in table: 4
> - Number of factors: 2
> - Test for independence of all factors:
>  - Chisq = 12, df = 9, p-value = 0.2
>  - Chi-squared approximation may be incorrect
> #+END_SRC
> ---<--------------------cut here---------------end--------------------->---
> 
> According to the documentation
> https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-R.html, the
> results output should be wrapped in #+BEGIN_ORG #+END_ORG, not in
> another source code block.
> 

The manual says it is wrapped as you saw above. See 

	(info "(org) Results of Evaluation")

Unfortunately, the worg pages are not as well curated as the manual.  So advice that is out of date persists.

You might want to use `:wrap' to get the behavior you seek, but be aware there is no `org' special block in the current releases. So even if you get to wrap the results in begin/end-org, it will probably not behave as you want or expect.

Perhaps `drawer' will satisfy your needs.

Chuck


ps. Org mode version 9.1.14

  reply	other threads:[~2018-09-30 18:04 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-30 15:18 R source code block :session Seb
2018-09-30 18:03 ` Berry, Charles [this message]
2018-09-30 18:10   ` William Denton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CBB7ED8D-286D-471C-8848-60B102684218@ucsd.edu \
    --to=ccberry@ucsd.edu \
    --cc=emacs-orgmode@gnu.org \
    --cc=spluque@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).