emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* problem with babel and R
@ 2010-08-17  8:17 David Hajage
  2010-08-17 12:01 ` David Hajage
  0 siblings, 1 reply; 13+ messages in thread
From: David Hajage @ 2010-08-17  8:17 UTC (permalink / raw)
  To: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 1450 bytes --]

Hello,

I am trying to use babel with R. Here the code:

#+srcname: foo
#+begin_src R :session *R* :results output org replace
  library(ascii)
  options(asciiType = "org")
  ascii(head(esoph))
#+end_src

#+results: foo

> |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
|---+-------+-----------+----------+--------+-----------|
| 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
| 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
| 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
| 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
| 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
| 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |

> |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
|---+-------+-----------+----------+--------+-----------|
| 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
| 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
| 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
| 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
| 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
| 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |

With org-mode 7.01g in emacs 23, there is two problems:
 - an extra ">" is added in the first line while output is "org"
 - when I run the code twice, the new results is appended, while I have the
option "replace".

Is there any problem with my header?

Thank you very much for your help.
David

[-- Attachment #1.2: Type: text/html, Size: 4772 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: problem with babel and R
  2010-08-17  8:17 problem with babel and R David Hajage
@ 2010-08-17 12:01 ` David Hajage
  2010-08-17 13:57   ` Eric Schulte
  0 siblings, 1 reply; 13+ messages in thread
From: David Hajage @ 2010-08-17 12:01 UTC (permalink / raw)
  To: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 3020 bytes --]

I tried the code with the last development version of org-mode:

#+srcname: foo
#+begin_src R :session *R* :results output org replace
  library(ascii)
  options(asciiType = "org")
  ascii(head(esoph))
#+end_src

#+results: foo

 |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
|---+-------+-----------+----------+--------+-----------|
| 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
| 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
| 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
| 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
| 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
| 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |

 |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
|---+-------+-----------+----------+--------+-----------|
| 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
| 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
| 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
| 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
| 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
| 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |

There is no more ">", but an extra space.
But, the replace option doesn't work: results are still appended. I am not
an org-mode guru (far, far away), but I think this is because when output is
org, there is no indication about the "end" of the results.

David


On Tue, Aug 17, 2010 at 10:17, David Hajage <dhajage@gmail.com> wrote:

> Hello,
>
> I am trying to use babel with R. Here the code:
>
> #+srcname: foo
> #+begin_src R :session *R* :results output org replace
>   library(ascii)
>   options(asciiType = "org")
>   ascii(head(esoph))
> #+end_src
>
> #+results: foo
>
> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> |---+-------+-----------+----------+--------+-----------|
> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>
> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> |---+-------+-----------+----------+--------+-----------|
> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>
> With org-mode 7.01g in emacs 23, there is two problems:
>  - an extra ">" is added in the first line while output is "org"
>  - when I run the code twice, the new results is appended, while I have the
> option "replace".
>
> Is there any problem with my header?
>
> Thank you very much for your help.
> David
>

[-- Attachment #1.2: Type: text/html, Size: 6005 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Re: problem with babel and R
  2010-08-17 12:01 ` David Hajage
@ 2010-08-17 13:57   ` Eric Schulte
  2010-08-17 14:41     ` David Hajage
  0 siblings, 1 reply; 13+ messages in thread
From: Eric Schulte @ 2010-08-17 13:57 UTC (permalink / raw)
  To: David Hajage; +Cc: emacs-orgmode

Hi David,

It seems that the problem here is in the ascii package.  It is inserting
an empty line at the beginning of your table, so that the table is not
snugly sitting under the #+results foo tag, because of this the table
isn't seen as results and is not replaced -- if you delete that space
then re-run the code block you'll notice that the table is replaced.

Org-mode is very capable of inserting tabular data into Org-mode
documents without using the ascii package.  For example the following
would be a more idiomatic example of using Org-mode to create a table
from R code.

--8<---------------cut here---------------start------------->8---
#+begin_src R
  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
  numbers
#+end_src

#+results:
| 51 | 43 | 22 |
| 92 | 28 | 21 |
| 68 | 22 |  9 |

#+begin_src R :colnames yes
  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
  numbers
#+end_src

#+results:
| V1 | V2 | V3 |
|----+----+----|
| 51 | 43 | 22 |
| 92 | 28 | 21 |
| 68 | 22 |  9 |
--8<---------------cut here---------------end--------------->8---

or applied to your example, the following code block should generate the
desired results.

--8<---------------cut here---------------start------------->8---
#+srcname: foo
#+begin_src R :session *R*
  head(esoph)
#+end_src
--8<---------------cut here---------------end--------------->8---

One last small note: the "replace" argument to :results is normally the
default value, and doesn't need to be explicitly added (although I can
see why you would have added it in this case since it wasn't working as
expected).

Cheers -- Eric

David Hajage <dhajage@gmail.com> writes:

> I tried the code with the last development version of org-mode:
>
> #+srcname: foo
> #+begin_src R :session *R* :results output org replace
>   library(ascii)
>   options(asciiType = "org")
>   ascii(head(esoph))
> #+end_src
>
> #+results: foo
>
>  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> |---+-------+-----------+----------+--------+-----------|
> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>
>  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> |---+-------+-----------+----------+--------+-----------|
> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>
> There is no more ">", but an extra space.
> But, the replace option doesn't work: results are still appended. I am not
> an org-mode guru (far, far away), but I think this is because when output is
> org, there is no indication about the "end" of the results.
>
> David
>
>
> On Tue, Aug 17, 2010 at 10:17, David Hajage <dhajage@gmail.com> wrote:
>
>> Hello,
>>
>> I am trying to use babel with R. Here the code:
>>
>> #+srcname: foo
>> #+begin_src R :session *R* :results output org replace
>>   library(ascii)
>>   options(asciiType = "org")
>>   ascii(head(esoph))
>> #+end_src
>>
>> #+results: foo
>>
>> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> |---+-------+-----------+----------+--------+-----------|
>> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>
>> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> |---+-------+-----------+----------+--------+-----------|
>> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>
>> With org-mode 7.01g in emacs 23, there is two problems:
>>  - an extra ">" is added in the first line while output is "org"
>>  - when I run the code twice, the new results is appended, while I have the
>> option "replace".
>>
>> Is there any problem with my header?
>>
>> Thank you very much for your help.
>> David
>>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Re: problem with babel and R
  2010-08-17 13:57   ` Eric Schulte
@ 2010-08-17 14:41     ` David Hajage
  2010-08-17 15:15       ` Eric Schulte
       [not found]       ` <1668ca$1pq4c@mail.curie.net>
  0 siblings, 2 replies; 13+ messages in thread
From: David Hajage @ 2010-08-17 14:41 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 9373 bytes --]

Thank you very much for your answer.

But when I run the following code directly into R, no extra lines is added
by the ascii function:
> library(ascii)
Le chargement a nécessité le package : proto
> options(asciiType = "org")
> ascii(head(esoph)) # no extra line
|   | agegp | alcgp     | tobgp    | ncases | ncontrols |
|---+-------+-----------+----------+--------+-----------|
| 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
| 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
| 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
| 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
| 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
| 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |

To see what hapens, I tried this:
--8<---------------cut here---------------start------------->8---
#+srcname: foo
#+begin_src R :session *R* :results output org replace
  library(ascii)
  options(asciiType = "org")
  head(esoph)
#+end_src

#+results: foo

  agegp     alcgp    tobgp ncases ncontrols
1 25-34 0-39g/day 0-9g/day      0        40
2 25-34 0-39g/day    10-19      0        10
3 25-34 0-39g/day    20-29      0         6
4 25-34 0-39g/day      30+      0         5
5 25-34     40-79 0-9g/day      0        27
6 25-34     40-79    10-19      0         7
--8<---------------cut here---------------end--------------->8---

The extra line is still there.

In fact, the solution was to run 'library(ascii)' in another source block.
When I run only this:

--8<---------------cut here---------------start------------->8---
#+begin_src R :session *R* :results output org replace
  ascii(head(esoph))
#+end_src

#+results: foo
|   | agegp | alcgp     |    tobgp | ncases | ncontrols |
|---+-------+-----------+----------+--------+-----------|
| 1 | 25-34 | 0-39g/day | 0-9g/day |   0.00 |     40.00 |
| 2 | 25-34 | 0-39g/day |    10-19 |   0.00 |     10.00 |
| 3 | 25-34 | 0-39g/day |    20-29 |   0.00 |      6.00 |
| 4 | 25-34 | 0-39g/day |      30+ |   0.00 |      5.00 |
| 5 | 25-34 | 40-79     | 0-9g/day |   0.00 |     27.00 |
| 6 | 25-34 | 40-79     |    10-19 |   0.00 |      7.00 |
--8<---------------cut here---------------end------------->8---

Everything is then OK.
I have no idea why "library(ascii)..." generates an extra empty line in the
results.

If I understand, the results is all the text directly under "#+results:",
until the first empty line. But what happens if the result contains empty
lines? Here an example with ascii and Hmisc package:

--8<---------------cut here---------------start------------->8---
> library(ascii)
> library(Hmisc)
> ascii(describe(esoph[, 1:3]))
#+CAPTION: esoph[, 1:3]
- 3 Variable
- 88 Observations

*agegp*
| n  | missing | unique |
| 88 | 0       | 6      |

|           | 25-34 | 35-44 | 45-54 | 55-64 | 65-74 | 75+ |
| Frequency | 15    | 15    | 16    | 16    | 15    | 11  |
| %         | 17    | 17    | 18    | 18    | 17    | 12  |

*alcgp*
| n  | missing | unique |
| 88 | 0       | 4      |

 0-39g/day (23, 26%), 40-79 (23, 26%), 80-119 (21, 24%), 120+ (21, 24%)

*tobgp*
| n  | missing | unique |
| 88 | 0       | 4      |

 0-9g/day (24, 27%), 10-19 (24, 27%), 20-29 (20, 23%), 30+ (20, 23%)
--8<---------------cut here---------------end--------------->8---

As you can see, describe() generate a description of my data, and ascii
generate org-mode markup as result. The result contains empty rows. Since
there is no special characters indicating the end of the results in babel,
replace option will not work in this case. Is there any workaround?

Of course, ascii is not usefull in this case, but it can coerce into
org-mode markup many other R objects (see my previous example and
http://orgmode.org/worg/org-contrib/babel/examples/ascii.php)

David


On Tue, Aug 17, 2010 at 15:57, Eric Schulte <schulte.eric@gmail.com> wrote:

> Hi David,
>
> It seems that the problem here is in the ascii package.  It is inserting
> an empty line at the beginning of your table, so that the table is not
> snugly sitting under the #+results foo tag, because of this the table
> isn't seen as results and is not replaced -- if you delete that space
> then re-run the code block you'll notice that the table is replaced.
>
> Org-mode is very capable of inserting tabular data into Org-mode
> documents without using the ascii package.  For example the following
> would be a more idiomatic example of using Org-mode to create a table
> from R code.
>
> --8<---------------cut here---------------start------------->8---
> #+begin_src R
>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>  numbers
> #+end_src
>
> #+results:
> | 51 | 43 | 22 |
> | 92 | 28 | 21 |
> | 68 | 22 |  9 |
>
> #+begin_src R :colnames yes
>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>  numbers
> #+end_src
>
> #+results:
> | V1 | V2 | V3 |
> |----+----+----|
> | 51 | 43 | 22 |
> | 92 | 28 | 21 |
> | 68 | 22 |  9 |
> --8<---------------cut here---------------end--------------->8---
>
> or applied to your example, the following code block should generate the
> desired results.
>
> --8<---------------cut here---------------start------------->8---
> #+srcname: foo
> #+begin_src R :session *R*
>   head(esoph)
> #+end_src
> --8<---------------cut here---------------end--------------->8---
>
> One last small note: the "replace" argument to :results is normally the
> default value, and doesn't need to be explicitly added (although I can
> see why you would have added it in this case since it wasn't working as
> expected).
>
> Cheers -- Eric
>
> David Hajage <dhajage@gmail.com> writes:
>
> > I tried the code with the last development version of org-mode:
> >
> > #+srcname: foo
> > #+begin_src R :session *R* :results output org replace
> >   library(ascii)
> >   options(asciiType = "org")
> >   ascii(head(esoph))
> > #+end_src
> >
> > #+results: foo
> >
> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> > |---+-------+-----------+----------+--------+-----------|
> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >
> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> > |---+-------+-----------+----------+--------+-----------|
> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >
> > There is no more ">", but an extra space.
> > But, the replace option doesn't work: results are still appended. I am
> not
> > an org-mode guru (far, far away), but I think this is because when output
> is
> > org, there is no indication about the "end" of the results.
> >
> > David
> >
> >
> > On Tue, Aug 17, 2010 at 10:17, David Hajage <dhajage@gmail.com> wrote:
> >
> >> Hello,
> >>
> >> I am trying to use babel with R. Here the code:
> >>
> >> #+srcname: foo
> >> #+begin_src R :session *R* :results output org replace
> >>   library(ascii)
> >>   options(asciiType = "org")
> >>   ascii(head(esoph))
> >> #+end_src
> >>
> >> #+results: foo
> >>
> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> >> |---+-------+-----------+----------+--------+-----------|
> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >>
> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> >> |---+-------+-----------+----------+--------+-----------|
> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >>
> >> With org-mode 7.01g in emacs 23, there is two problems:
> >>  - an extra ">" is added in the first line while output is "org"
> >>  - when I run the code twice, the new results is appended, while I have
> the
> >> option "replace".
> >>
> >> Is there any problem with my header?
> >>
> >> Thank you very much for your help.
> >> David
> >>
> > _______________________________________________
> > Emacs-orgmode mailing list
> > Please use `Reply All' to send replies to the list.
> > Emacs-orgmode@gnu.org
> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>

[-- Attachment #1.2: Type: text/html, Size: 19052 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Re: problem with babel and R
  2010-08-17 14:41     ` David Hajage
@ 2010-08-17 15:15       ` Eric Schulte
  2010-08-17 17:07         ` Tom Short
       [not found]       ` <1668ca$1pq4c@mail.curie.net>
  1 sibling, 1 reply; 13+ messages in thread
From: Eric Schulte @ 2010-08-17 15:15 UTC (permalink / raw)
  To: David Hajage; +Cc: emacs-orgmode

Hi David,

David Hajage <dhajage@gmail.com> writes:

> Thank you very much for your answer.
>

My pleasure

>
> But when I run the following code directly into R, no extra lines is
>added
> by the ascii function:
>> library(ascii)
> Le chargement a nécessité le package : proto
>> options(asciiType = "org")
>> ascii(head(esoph)) # no extra line
> |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> |---+-------+-----------+----------+--------+-----------|
> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>

ah, my fault, this isn't an ascii issue.

>
> In fact, the solution was to run 'library(ascii)' in another source block.
> When I run only this:
>

Thanks for pointing this out, I see what's happening now.

The :results output header argument (see [1] for information on header
arguments) informs Org-mode to collect all of the output of the source
code block.  This means that when library(ascii) is run, an empty line
is collected and appended to the output.  Removing the "output" header
argument should fix this issue.

My I ask why you are using the ascii package for simple table output?
It seems to me that this would be much simpler using the pure Org-mode
solution I suggested in my previous email.

>
> #+begin_src R :session *R* :results output org replace
>   ascii(head(esoph))
> #+end_src
>
> #+results: foo
> |   | agegp | alcgp     |    tobgp | ncases | ncontrols |
> |---+-------+-----------+----------+--------+-----------|
> | 1 | 25-34 | 0-39g/day | 0-9g/day |   0.00 |     40.00 |
> | 2 | 25-34 | 0-39g/day |    10-19 |   0.00 |     10.00 |
> | 3 | 25-34 | 0-39g/day |    20-29 |   0.00 |      6.00 |
> | 4 | 25-34 | 0-39g/day |      30+ |   0.00 |      5.00 |
> | 5 | 25-34 | 40-79     | 0-9g/day |   0.00 |     27.00 |
> | 6 | 25-34 | 40-79     |    10-19 |   0.00 |      7.00 |
>
> Everything is then OK.
> I have no idea why "library(ascii)..." generates an extra empty line in the
> results.
>
> If I understand, the results is all the text directly under "#+results:",
> until the first empty line. But what happens if the result contains empty
> lines? Here an example with ascii and Hmisc package:
>

This is not quite right, see [2] for a discussion of results handling.
The "org" option to results is a special case in which no
post-processing of the results takes place, and the raw output is
inserted into the org-mode buffer.

Under normal usage w/o this header argument, results are either tabular
or are textual.  If tabular a single table can easily be recognized and
handled, if textual they are normally enclosed in a block (example,
html, latex, etc...), the block then allows for empty lines while still
making it clear where the results end.

>
>> library(ascii)
>> library(Hmisc)
>> ascii(describe(esoph[, 1:3]))
> #+CAPTION: esoph[, 1:3]
> - 3 Variable
> - 88 Observations
>
> *agegp*
> | n  | missing | unique |
> | 88 | 0       | 6      |
>
> |           | 25-34 | 35-44 | 45-54 | 55-64 | 65-74 | 75+ |
> | Frequency | 15    | 15    | 16    | 16    | 15    | 11  |
> | %         | 17    | 17    | 18    | 18    | 17    | 12  |
>
> *alcgp*
> | n  | missing | unique |
> | 88 | 0       | 4      |
>
>  0-39g/day (23, 26%), 40-79 (23, 26%), 80-119 (21, 24%), 120+ (21, 24%)
>
> *tobgp*
> | n  | missing | unique |
> | 88 | 0       | 4      |
>
>  0-9g/day (24, 27%), 10-19 (24, 27%), 20-29 (20, 23%), 30+ (20, 23%)
>
> As you can see, describe() generate a description of my data, and ascii
> generate org-mode markup as result. The result contains empty rows. Since
> there is no special characters indicating the end of the results in babel,
> replace option will not work in this case. Is there any workaround?
>

When using ":results org" there is no workaround, as the explicit
purpose of this setting is for your results to be inserted directly into
the Org-mode buffer w/o any interpretation or alteration.

In general I would recommend keeping a 1-to-1 mapping between code
blocks and result items, which should resolve this issue.

>
> Of course, ascii is not usefull in this case, but it can coerce into
> org-mode markup many other R objects (see my previous example and
> http://orgmode.org/worg/org-contrib/babel/examples/ascii.php)
>

I see, that answers my question from above. Thanks

Hope this helps -- Eric

>
> David
>
>
> On Tue, Aug 17, 2010 at 15:57, Eric Schulte <schulte.eric@gmail.com> wrote:
>
>> Hi David,
>>
>> It seems that the problem here is in the ascii package.  It is inserting
>> an empty line at the beginning of your table, so that the table is not
>> snugly sitting under the #+results foo tag, because of this the table
>> isn't seen as results and is not replaced -- if you delete that space
>> then re-run the code block you'll notice that the table is replaced.
>>
>> Org-mode is very capable of inserting tabular data into Org-mode
>> documents without using the ascii package.  For example the following
>> would be a more idiomatic example of using Org-mode to create a table
>> from R code.
>>
>> --8<---------------cut here---------------start------------->8---
>> #+begin_src R
>>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>>  numbers
>> #+end_src
>>
>> #+results:
>> | 51 | 43 | 22 |
>> | 92 | 28 | 21 |
>> | 68 | 22 |  9 |
>>
>> #+begin_src R :colnames yes
>>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>>  numbers
>> #+end_src
>>
>> #+results:
>> | V1 | V2 | V3 |
>> |----+----+----|
>> | 51 | 43 | 22 |
>> | 92 | 28 | 21 |
>> | 68 | 22 |  9 |
>> --8<---------------cut here---------------end--------------->8---
>>
>> or applied to your example, the following code block should generate the
>> desired results.
>>
>> --8<---------------cut here---------------start------------->8---
>> #+srcname: foo
>> #+begin_src R :session *R*
>>   head(esoph)
>> #+end_src
>> --8<---------------cut here---------------end--------------->8---
>>
>> One last small note: the "replace" argument to :results is normally the
>> default value, and doesn't need to be explicitly added (although I can
>> see why you would have added it in this case since it wasn't working as
>> expected).
>>
>> Cheers -- Eric
>>
>> David Hajage <dhajage@gmail.com> writes:
>>
>> > I tried the code with the last development version of org-mode:
>> >
>> > #+srcname: foo
>> > #+begin_src R :session *R* :results output org replace
>> >   library(ascii)
>> >   options(asciiType = "org")
>> >   ascii(head(esoph))
>> > #+end_src
>> >
>> > #+results: foo
>> >
>> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> > |---+-------+-----------+----------+--------+-----------|
>> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >
>> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> > |---+-------+-----------+----------+--------+-----------|
>> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >
>> > There is no more ">", but an extra space.
>> > But, the replace option doesn't work: results are still appended. I am
>> not
>> > an org-mode guru (far, far away), but I think this is because when output
>> is
>> > org, there is no indication about the "end" of the results.
>> >
>> > David
>> >
>> >
>> > On Tue, Aug 17, 2010 at 10:17, David Hajage <dhajage@gmail.com> wrote:
>> >
>> >> Hello,
>> >>
>> >> I am trying to use babel with R. Here the code:
>> >>
>> >> #+srcname: foo
>> >> #+begin_src R :session *R* :results output org replace
>> >>   library(ascii)
>> >>   options(asciiType = "org")
>> >>   ascii(head(esoph))
>> >> #+end_src
>> >>
>> >> #+results: foo
>> >>
>> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> >> |---+-------+-----------+----------+--------+-----------|
>> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >>
>> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> >> |---+-------+-----------+----------+--------+-----------|
>> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >>
>> >> With org-mode 7.01g in emacs 23, there is two problems:
>> >>  - an extra ">" is added in the first line while output is "org"
>> >>  - when I run the code twice, the new results is appended, while I have
>> the
>> >> option "replace".
>> >>
>> >> Is there any problem with my header?
>> >>
>> >> Thank you very much for your help.
>> >> David
>> >>
>> > _______________________________________________
>> > Emacs-orgmode mailing list
>> > Please use `Reply All' to send replies to the list.
>> > Emacs-orgmode@gnu.org
>> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>

Footnotes: 
[1]  http://orgmode.org/manual/Header-arguments.html#Header-arguments

[2]  http://orgmode.org/manual/Results-of-evaluation.html#Results-of-evaluation

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: problem with babel and R
  2010-08-17 15:15       ` Eric Schulte
@ 2010-08-17 17:07         ` Tom Short
  0 siblings, 0 replies; 13+ messages in thread
From: Tom Short @ 2010-08-17 17:07 UTC (permalink / raw)
  To: emacs-orgmode

Eric Schulte <schulte.eric <at> gmail.com> writes:

> Under normal usage w/o this header argument, results are either tabular
> or are textual.  If tabular a single table can easily be recognized and
> handled, if textual they are normally enclosed in a block (example,
> html, latex, etc...), the block then allows for empty lines while still
> making it clear where the results end.
> 

I've run into this when trying to generate custom results in org format (could
be paragraphs with links or headings). It'd help a lot to add something like
"#+end_results:" at the end of raw output, so org-babel knows what to replace.

- Tom

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Re: problem with babel and R
       [not found]       ` <1668ca$1pq4c@mail.curie.net>
@ 2010-08-18  6:53         ` David Hajage
  2010-08-18 22:13           ` Eric Schulte
  0 siblings, 1 reply; 13+ messages in thread
From: David Hajage @ 2010-08-18  6:53 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 12095 bytes --]

OK, I understand that using ":results org", the results is not altered,
there is no post processing. But I don't want a post processing, I would
like a way to tell babel where is the begining *and the end* of the output
produces by a particular R source block. I think an "#+end_results: foo" at
the end of the output could do the job. Then, the option "replace" could
work in all situation, even if a blank line is inserted somewhere in the org
output. No?
David


On Tue, Aug 17, 2010 at 17:15, Eric Schulte <schulte.eric@gmail.com> wrote:

> Hi David,
>
> David Hajage <dhajage@gmail.com> writes:
>
> > Thank you very much for your answer.
> >
>
> My pleasure
>
> >
> > But when I run the following code directly into R, no extra lines is
> >added
> > by the ascii function:
> >> library(ascii)
> > Le chargement a nécessité le package : proto
> >> options(asciiType = "org")
> >> ascii(head(esoph)) # no extra line
> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> > |---+-------+-----------+----------+--------+-----------|
> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >
>
> ah, my fault, this isn't an ascii issue.
>
> >
> > In fact, the solution was to run 'library(ascii)' in another source
> block.
> > When I run only this:
> >
>
> Thanks for pointing this out, I see what's happening now.
>
> The :results output header argument (see [1] for information on header
> arguments) informs Org-mode to collect all of the output of the source
> code block.  This means that when library(ascii) is run, an empty line
> is collected and appended to the output.  Removing the "output" header
> argument should fix this issue.
>
> My I ask why you are using the ascii package for simple table output?
> It seems to me that this would be much simpler using the pure Org-mode
> solution I suggested in my previous email.
>
> >
> > #+begin_src R :session *R* :results output org replace
> >   ascii(head(esoph))
> > #+end_src
> >
> > #+results: foo
> > |   | agegp | alcgp     |    tobgp | ncases | ncontrols |
> > |---+-------+-----------+----------+--------+-----------|
> > | 1 | 25-34 | 0-39g/day | 0-9g/day |   0.00 |     40.00 |
> > | 2 | 25-34 | 0-39g/day |    10-19 |   0.00 |     10.00 |
> > | 3 | 25-34 | 0-39g/day |    20-29 |   0.00 |      6.00 |
> > | 4 | 25-34 | 0-39g/day |      30+ |   0.00 |      5.00 |
> > | 5 | 25-34 | 40-79     | 0-9g/day |   0.00 |     27.00 |
> > | 6 | 25-34 | 40-79     |    10-19 |   0.00 |      7.00 |
> >
> > Everything is then OK.
> > I have no idea why "library(ascii)..." generates an extra empty line in
> the
> > results.
> >
> > If I understand, the results is all the text directly under "#+results:",
> > until the first empty line. But what happens if the result contains empty
> > lines? Here an example with ascii and Hmisc package:
> >
>
> This is not quite right, see [2] for a discussion of results handling.
> The "org" option to results is a special case in which no
> post-processing of the results takes place, and the raw output is
> inserted into the org-mode buffer.
>
> Under normal usage w/o this header argument, results are either tabular
> or are textual.  If tabular a single table can easily be recognized and
> handled, if textual they are normally enclosed in a block (example,
> html, latex, etc...), the block then allows for empty lines while still
> making it clear where the results end.
>


>
> >
> >> library(ascii)
> >> library(Hmisc)
> >> ascii(describe(esoph[, 1:3]))
> > #+CAPTION: esoph[, 1:3]
> > - 3 Variable
> > - 88 Observations
> >
> > *agegp*
> > | n  | missing | unique |
> > | 88 | 0       | 6      |
> >
> > |           | 25-34 | 35-44 | 45-54 | 55-64 | 65-74 | 75+ |
> > | Frequency | 15    | 15    | 16    | 16    | 15    | 11  |
> > | %         | 17    | 17    | 18    | 18    | 17    | 12  |
> >
> > *alcgp*
> > | n  | missing | unique |
> > | 88 | 0       | 4      |
> >
> >  0-39g/day (23, 26%), 40-79 (23, 26%), 80-119 (21, 24%), 120+ (21, 24%)
> >
> > *tobgp*
> > | n  | missing | unique |
> > | 88 | 0       | 4      |
> >
> >  0-9g/day (24, 27%), 10-19 (24, 27%), 20-29 (20, 23%), 30+ (20, 23%)
> >
> > As you can see, describe() generate a description of my data, and ascii
> > generate org-mode markup as result. The result contains empty rows. Since
> > there is no special characters indicating the end of the results in
> babel,
> > replace option will not work in this case. Is there any workaround?
> >
>
> When using ":results org" there is no workaround, as the explicit
> purpose of this setting is for your results to be inserted directly into
> the Org-mode buffer w/o any interpretation or alteration.
>


>
> In general I would recommend keeping a 1-to-1 mapping between code
> blocks and result items, which should resolve this issue.
>
> >
> > Of course, ascii is not usefull in this case, but it can coerce into
> > org-mode markup many other R objects (see my previous example and
> > http://orgmode.org/worg/org-contrib/babel/examples/ascii.php)
> >
>
> I see, that answers my question from above. Thanks
>
> Hope this helps -- Eric
>
> >
> > David
> >
> >
> > On Tue, Aug 17, 2010 at 15:57, Eric Schulte <schulte.eric@gmail.com>
> wrote:
> >
> >> Hi David,
> >>
> >> It seems that the problem here is in the ascii package.  It is inserting
> >> an empty line at the beginning of your table, so that the table is not
> >> snugly sitting under the #+results foo tag, because of this the table
> >> isn't seen as results and is not replaced -- if you delete that space
> >> then re-run the code block you'll notice that the table is replaced.
> >>
> >> Org-mode is very capable of inserting tabular data into Org-mode
> >> documents without using the ascii package.  For example the following
> >> would be a more idiomatic example of using Org-mode to create a table
> >> from R code.
> >>
> >> --8<---------------cut here---------------start------------->8---
> >> #+begin_src R
> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
> >>  numbers
> >> #+end_src
> >>
> >> #+results:
> >> | 51 | 43 | 22 |
> >> | 92 | 28 | 21 |
> >> | 68 | 22 |  9 |
> >>
> >> #+begin_src R :colnames yes
> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
> >>  numbers
> >> #+end_src
> >>
> >> #+results:
> >> | V1 | V2 | V3 |
> >> |----+----+----|
> >> | 51 | 43 | 22 |
> >> | 92 | 28 | 21 |
> >> | 68 | 22 |  9 |
> >> --8<---------------cut here---------------end--------------->8---
> >>
> >> or applied to your example, the following code block should generate the
> >> desired results.
> >>
> >> --8<---------------cut here---------------start------------->8---
> >> #+srcname: foo
> >> #+begin_src R :session *R*
> >>   head(esoph)
> >> #+end_src
> >> --8<---------------cut here---------------end--------------->8---
> >>
> >> One last small note: the "replace" argument to :results is normally the
> >> default value, and doesn't need to be explicitly added (although I can
> >> see why you would have added it in this case since it wasn't working as
> >> expected).
> >>
> >> Cheers -- Eric
> >>
> >> David Hajage <dhajage@gmail.com> writes:
> >>
> >> > I tried the code with the last development version of org-mode:
> >> >
> >> > #+srcname: foo
> >> > #+begin_src R :session *R* :results output org replace
> >> >   library(ascii)
> >> >   options(asciiType = "org")
> >> >   ascii(head(esoph))
> >> > #+end_src
> >> >
> >> > #+results: foo
> >> >
> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> >> > |---+-------+-----------+----------+--------+-----------|
> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >> >
> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> >> > |---+-------+-----------+----------+--------+-----------|
> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >> >
> >> > There is no more ">", but an extra space.
> >> > But, the replace option doesn't work: results are still appended. I am
> >> not
> >> > an org-mode guru (far, far away), but I think this is because when
> output
> >> is
> >> > org, there is no indication about the "end" of the results.
> >> >
> >> > David
> >> >
> >> >
> >> > On Tue, Aug 17, 2010 at 10:17, David Hajage <dhajage@gmail.com>
> wrote:
> >> >
> >> >> Hello,
> >> >>
> >> >> I am trying to use babel with R. Here the code:
> >> >>
> >> >> #+srcname: foo
> >> >> #+begin_src R :session *R* :results output org replace
> >> >>   library(ascii)
> >> >>   options(asciiType = "org")
> >> >>   ascii(head(esoph))
> >> >> #+end_src
> >> >>
> >> >> #+results: foo
> >> >>
> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> >> >> |---+-------+-----------+----------+--------+-----------|
> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >> >>
> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> >> >> |---+-------+-----------+----------+--------+-----------|
> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >> >>
> >> >> With org-mode 7.01g in emacs 23, there is two problems:
> >> >>  - an extra ">" is added in the first line while output is "org"
> >> >>  - when I run the code twice, the new results is appended, while I
> have
> >> the
> >> >> option "replace".
> >> >>
> >> >> Is there any problem with my header?
> >> >>
> >> >> Thank you very much for your help.
> >> >> David
> >> >>
> >> > _______________________________________________
> >> > Emacs-orgmode mailing list
> >> > Please use `Reply All' to send replies to the list.
> >> > Emacs-orgmode@gnu.org
> >> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
> >>
>
> Footnotes:
> [1]  http://orgmode.org/manual/Header-arguments.html#Header-arguments
>
> [2]
> http://orgmode.org/manual/Results-of-evaluation.html#Results-of-evaluation
>
>
> L'intégrité de ce message n'étant pas assurée sur Internet, l'Institut
> Curie ne peut être tenu responsable de son contenu.
> Si vous n'êtes pas destinataire de ce message confidentiel, merci de le
> détruire et d'avertir immédiatement l'expéditeur.
> Afin de contribuer au respect de l'environnement, merci de n'imprimer ce
> mail qu'en cas de nécessité.
>

[-- Attachment #1.2: Type: text/html, Size: 16111 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Re: problem with babel and R
  2010-08-18  6:53         ` David Hajage
@ 2010-08-18 22:13           ` Eric Schulte
  2010-08-26 16:10             ` Eric Schulte
  0 siblings, 1 reply; 13+ messages in thread
From: Eric Schulte @ 2010-08-18 22:13 UTC (permalink / raw)
  To: David Hajage; +Cc: emacs-orgmode

Hi David,

"#+end_results: foo" (or some derivative syntax) sounds like a good
idea, I'll add it to the Babel task list.

Thanks -- Eric

David Hajage <dhajage@gmail.com> writes:

> OK, I understand that using ":results org", the results is not altered,
> there is no post processing. But I don't want a post processing, I would
> like a way to tell babel where is the begining *and the end* of the output
> produces by a particular R source block. I think an "#+end_results: foo" at
> the end of the output could do the job. Then, the option "replace" could
> work in all situation, even if a blank line is inserted somewhere in the org
> output. No?
> David
>
>
> On Tue, Aug 17, 2010 at 17:15, Eric Schulte <schulte.eric@gmail.com> wrote:
>
>> Hi David,
>>
>> David Hajage <dhajage@gmail.com> writes:
>>
>> > Thank you very much for your answer.
>> >
>>
>> My pleasure
>>
>> >
>> > But when I run the following code directly into R, no extra lines is
>> >added
>> > by the ascii function:
>> >> library(ascii)
>> > Le chargement a nécessité le package : proto
>> >> options(asciiType = "org")
>> >> ascii(head(esoph)) # no extra line
>> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> > |---+-------+-----------+----------+--------+-----------|
>> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >
>>
>> ah, my fault, this isn't an ascii issue.
>>
>> >
>> > In fact, the solution was to run 'library(ascii)' in another source
>> block.
>> > When I run only this:
>> >
>>
>> Thanks for pointing this out, I see what's happening now.
>>
>> The :results output header argument (see [1] for information on header
>> arguments) informs Org-mode to collect all of the output of the source
>> code block.  This means that when library(ascii) is run, an empty line
>> is collected and appended to the output.  Removing the "output" header
>> argument should fix this issue.
>>
>> My I ask why you are using the ascii package for simple table output?
>> It seems to me that this would be much simpler using the pure Org-mode
>> solution I suggested in my previous email.
>>
>> >
>> > #+begin_src R :session *R* :results output org replace
>> >   ascii(head(esoph))
>> > #+end_src
>> >
>> > #+results: foo
>> > |   | agegp | alcgp     |    tobgp | ncases | ncontrols |
>> > |---+-------+-----------+----------+--------+-----------|
>> > | 1 | 25-34 | 0-39g/day | 0-9g/day |   0.00 |     40.00 |
>> > | 2 | 25-34 | 0-39g/day |    10-19 |   0.00 |     10.00 |
>> > | 3 | 25-34 | 0-39g/day |    20-29 |   0.00 |      6.00 |
>> > | 4 | 25-34 | 0-39g/day |      30+ |   0.00 |      5.00 |
>> > | 5 | 25-34 | 40-79     | 0-9g/day |   0.00 |     27.00 |
>> > | 6 | 25-34 | 40-79     |    10-19 |   0.00 |      7.00 |
>> >
>> > Everything is then OK.
>> > I have no idea why "library(ascii)..." generates an extra empty line in
>> the
>> > results.
>> >
>> > If I understand, the results is all the text directly under "#+results:",
>> > until the first empty line. But what happens if the result contains empty
>> > lines? Here an example with ascii and Hmisc package:
>> >
>>
>> This is not quite right, see [2] for a discussion of results handling.
>> The "org" option to results is a special case in which no
>> post-processing of the results takes place, and the raw output is
>> inserted into the org-mode buffer.
>>
>> Under normal usage w/o this header argument, results are either tabular
>> or are textual.  If tabular a single table can easily be recognized and
>> handled, if textual they are normally enclosed in a block (example,
>> html, latex, etc...), the block then allows for empty lines while still
>> making it clear where the results end.
>>
>
>
>>
>> >
>> >> library(ascii)
>> >> library(Hmisc)
>> >> ascii(describe(esoph[, 1:3]))
>> > #+CAPTION: esoph[, 1:3]
>> > - 3 Variable
>> > - 88 Observations
>> >
>> > *agegp*
>> > | n  | missing | unique |
>> > | 88 | 0       | 6      |
>> >
>> > |           | 25-34 | 35-44 | 45-54 | 55-64 | 65-74 | 75+ |
>> > | Frequency | 15    | 15    | 16    | 16    | 15    | 11  |
>> > | %         | 17    | 17    | 18    | 18    | 17    | 12  |
>> >
>> > *alcgp*
>> > | n  | missing | unique |
>> > | 88 | 0       | 4      |
>> >
>> >  0-39g/day (23, 26%), 40-79 (23, 26%), 80-119 (21, 24%), 120+ (21, 24%)
>> >
>> > *tobgp*
>> > | n  | missing | unique |
>> > | 88 | 0       | 4      |
>> >
>> >  0-9g/day (24, 27%), 10-19 (24, 27%), 20-29 (20, 23%), 30+ (20, 23%)
>> >
>> > As you can see, describe() generate a description of my data, and ascii
>> > generate org-mode markup as result. The result contains empty rows. Since
>> > there is no special characters indicating the end of the results in
>> babel,
>> > replace option will not work in this case. Is there any workaround?
>> >
>>
>> When using ":results org" there is no workaround, as the explicit
>> purpose of this setting is for your results to be inserted directly into
>> the Org-mode buffer w/o any interpretation or alteration.
>>
>
>
>>
>> In general I would recommend keeping a 1-to-1 mapping between code
>> blocks and result items, which should resolve this issue.
>>
>> >
>> > Of course, ascii is not usefull in this case, but it can coerce into
>> > org-mode markup many other R objects (see my previous example and
>> > http://orgmode.org/worg/org-contrib/babel/examples/ascii.php)
>> >
>>
>> I see, that answers my question from above. Thanks
>>
>> Hope this helps -- Eric
>>
>> >
>> > David
>> >
>> >
>> > On Tue, Aug 17, 2010 at 15:57, Eric Schulte <schulte.eric@gmail.com>
>> wrote:
>> >
>> >> Hi David,
>> >>
>> >> It seems that the problem here is in the ascii package.  It is inserting
>> >> an empty line at the beginning of your table, so that the table is not
>> >> snugly sitting under the #+results foo tag, because of this the table
>> >> isn't seen as results and is not replaced -- if you delete that space
>> >> then re-run the code block you'll notice that the table is replaced.
>> >>
>> >> Org-mode is very capable of inserting tabular data into Org-mode
>> >> documents without using the ascii package.  For example the following
>> >> would be a more idiomatic example of using Org-mode to create a table
>> >> from R code.
>> >>
>> >> --8<---------------cut here---------------start------------->8---
>> >> #+begin_src R
>> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>> >>  numbers
>> >> #+end_src
>> >>
>> >> #+results:
>> >> | 51 | 43 | 22 |
>> >> | 92 | 28 | 21 |
>> >> | 68 | 22 |  9 |
>> >>
>> >> #+begin_src R :colnames yes
>> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>> >>  numbers
>> >> #+end_src
>> >>
>> >> #+results:
>> >> | V1 | V2 | V3 |
>> >> |----+----+----|
>> >> | 51 | 43 | 22 |
>> >> | 92 | 28 | 21 |
>> >> | 68 | 22 |  9 |
>> >> --8<---------------cut here---------------end--------------->8---
>> >>
>> >> or applied to your example, the following code block should generate the
>> >> desired results.
>> >>
>> >> --8<---------------cut here---------------start------------->8---
>> >> #+srcname: foo
>> >> #+begin_src R :session *R*
>> >>   head(esoph)
>> >> #+end_src
>> >> --8<---------------cut here---------------end--------------->8---
>> >>
>> >> One last small note: the "replace" argument to :results is normally the
>> >> default value, and doesn't need to be explicitly added (although I can
>> >> see why you would have added it in this case since it wasn't working as
>> >> expected).
>> >>
>> >> Cheers -- Eric
>> >>
>> >> David Hajage <dhajage@gmail.com> writes:
>> >>
>> >> > I tried the code with the last development version of org-mode:
>> >> >
>> >> > #+srcname: foo
>> >> > #+begin_src R :session *R* :results output org replace
>> >> >   library(ascii)
>> >> >   options(asciiType = "org")
>> >> >   ascii(head(esoph))
>> >> > #+end_src
>> >> >
>> >> > #+results: foo
>> >> >
>> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> >> > |---+-------+-----------+----------+--------+-----------|
>> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >> >
>> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> >> > |---+-------+-----------+----------+--------+-----------|
>> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >> >
>> >> > There is no more ">", but an extra space.
>> >> > But, the replace option doesn't work: results are still appended. I am
>> >> not
>> >> > an org-mode guru (far, far away), but I think this is because when
>> output
>> >> is
>> >> > org, there is no indication about the "end" of the results.
>> >> >
>> >> > David
>> >> >
>> >> >
>> >> > On Tue, Aug 17, 2010 at 10:17, David Hajage <dhajage@gmail.com>
>> wrote:
>> >> >
>> >> >> Hello,
>> >> >>
>> >> >> I am trying to use babel with R. Here the code:
>> >> >>
>> >> >> #+srcname: foo
>> >> >> #+begin_src R :session *R* :results output org replace
>> >> >>   library(ascii)
>> >> >>   options(asciiType = "org")
>> >> >>   ascii(head(esoph))
>> >> >> #+end_src
>> >> >>
>> >> >> #+results: foo
>> >> >>
>> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> >> >> |---+-------+-----------+----------+--------+-----------|
>> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >> >>
>> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> >> >> |---+-------+-----------+----------+--------+-----------|
>> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >> >>
>> >> >> With org-mode 7.01g in emacs 23, there is two problems:
>> >> >>  - an extra ">" is added in the first line while output is "org"
>> >> >>  - when I run the code twice, the new results is appended, while I
>> have
>> >> the
>> >> >> option "replace".
>> >> >>
>> >> >> Is there any problem with my header?
>> >> >>
>> >> >> Thank you very much for your help.
>> >> >> David
>> >> >>
>> >> > _______________________________________________
>> >> > Emacs-orgmode mailing list
>> >> > Please use `Reply All' to send replies to the list.
>> >> > Emacs-orgmode@gnu.org
>> >> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>> >>
>>
>> Footnotes:
>> [1]  http://orgmode.org/manual/Header-arguments.html#Header-arguments
>>
>> [2]
>> http://orgmode.org/manual/Results-of-evaluation.html#Results-of-evaluation
>>
>>
>> L'intégrité de ce message n'étant pas assurée sur Internet, l'Institut
>> Curie ne peut être tenu responsable de son contenu.
>> Si vous n'êtes pas destinataire de ce message confidentiel, merci de le
>> détruire et d'avertir immédiatement l'expéditeur.
>> Afin de contribuer au respect de l'environnement, merci de n'imprimer ce
>> mail qu'en cas de nécessité.
>>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Re: problem with babel and R
  2010-08-18 22:13           ` Eric Schulte
@ 2010-08-26 16:10             ` Eric Schulte
  2010-08-26 20:20               ` David Hajage
  0 siblings, 1 reply; 13+ messages in thread
From: Eric Schulte @ 2010-08-26 16:10 UTC (permalink / raw)
  To: David Hajage; +Cc: emacs-orgmode

Hi,

A fix to this issue has been pushed up to the repository.  As can now be
read in the documentation of the `org-babel-insert-result' function [1],
there is now a subtle distinction between ":results org" and ":results
raw", where ":results org" will wrap code block results in a "begin_src
org" block.  The block wrapper makes it possible for the entirety of the
results to be located and removed by Babel upon code block
re-evaluation.

In addition a new ob-org.el file has been added providing support for
evaluation of Org-mode blocks.  With this new language support loaded
the above technique becomes a working replacement for ":results raw"
allowing the body of the org code block to be interpreted as inline
org-mode text on export.  This is done through some non-standard default
header arguments described in the recent commit message (see [2])

Best -- Eric

"Eric Schulte" <schulte.eric@gmail.com> writes:

> Hi David,
>
> "#+end_results: foo" (or some derivative syntax) sounds like a good
> idea, I'll add it to the Babel task list.
>
> Thanks -- Eric
>
> David Hajage <dhajage@gmail.com> writes:
>
>> OK, I understand that using ":results org", the results is not altered,
>> there is no post processing. But I don't want a post processing, I would
>> like a way to tell babel where is the begining *and the end* of the output
>> produces by a particular R source block. I think an "#+end_results: foo" at
>> the end of the output could do the job. Then, the option "replace" could
>> work in all situation, even if a blank line is inserted somewhere in the org
>> output. No?
>> David
>>
>>
>> On Tue, Aug 17, 2010 at 17:15, Eric Schulte <schulte.eric@gmail.com> wrote:
>>
>>> Hi David,
>>>
>>> David Hajage <dhajage@gmail.com> writes:
>>>
>>> > Thank you very much for your answer.
>>> >
>>>
>>> My pleasure
>>>
>>> >
>>> > But when I run the following code directly into R, no extra lines is
>>> >added
>>> > by the ascii function:
>>> >> library(ascii)
>>> > Le chargement a nécessité le package : proto
>>> >> options(asciiType = "org")
>>> >> ascii(head(esoph)) # no extra line
>>> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>> > |---+-------+-----------+----------+--------+-----------|
>>> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>> >
>>>
>>> ah, my fault, this isn't an ascii issue.
>>>
>>> >
>>> > In fact, the solution was to run 'library(ascii)' in another source
>>> block.
>>> > When I run only this:
>>> >
>>>
>>> Thanks for pointing this out, I see what's happening now.
>>>
>>> The :results output header argument (see [1] for information on header
>>> arguments) informs Org-mode to collect all of the output of the source
>>> code block.  This means that when library(ascii) is run, an empty line
>>> is collected and appended to the output.  Removing the "output" header
>>> argument should fix this issue.
>>>
>>> My I ask why you are using the ascii package for simple table output?
>>> It seems to me that this would be much simpler using the pure Org-mode
>>> solution I suggested in my previous email.
>>>
>>> >
>>> > #+begin_src R :session *R* :results output org replace
>>> >   ascii(head(esoph))
>>> > #+end_src
>>> >
>>> > #+results: foo
>>> > |   | agegp | alcgp     |    tobgp | ncases | ncontrols |
>>> > |---+-------+-----------+----------+--------+-----------|
>>> > | 1 | 25-34 | 0-39g/day | 0-9g/day |   0.00 |     40.00 |
>>> > | 2 | 25-34 | 0-39g/day |    10-19 |   0.00 |     10.00 |
>>> > | 3 | 25-34 | 0-39g/day |    20-29 |   0.00 |      6.00 |
>>> > | 4 | 25-34 | 0-39g/day |      30+ |   0.00 |      5.00 |
>>> > | 5 | 25-34 | 40-79     | 0-9g/day |   0.00 |     27.00 |
>>> > | 6 | 25-34 | 40-79     |    10-19 |   0.00 |      7.00 |
>>> >
>>> > Everything is then OK.
>>> > I have no idea why "library(ascii)..." generates an extra empty line in
>>> the
>>> > results.
>>> >
>>> > If I understand, the results is all the text directly under "#+results:",
>>> > until the first empty line. But what happens if the result contains empty
>>> > lines? Here an example with ascii and Hmisc package:
>>> >
>>>
>>> This is not quite right, see [2] for a discussion of results handling.
>>> The "org" option to results is a special case in which no
>>> post-processing of the results takes place, and the raw output is
>>> inserted into the org-mode buffer.
>>>
>>> Under normal usage w/o this header argument, results are either tabular
>>> or are textual.  If tabular a single table can easily be recognized and
>>> handled, if textual they are normally enclosed in a block (example,
>>> html, latex, etc...), the block then allows for empty lines while still
>>> making it clear where the results end.
>>>
>>
>>
>>>
>>> >
>>> >> library(ascii)
>>> >> library(Hmisc)
>>> >> ascii(describe(esoph[, 1:3]))
>>> > #+CAPTION: esoph[, 1:3]
>>> > - 3 Variable
>>> > - 88 Observations
>>> >
>>> > *agegp*
>>> > | n  | missing | unique |
>>> > | 88 | 0       | 6      |
>>> >
>>> > |           | 25-34 | 35-44 | 45-54 | 55-64 | 65-74 | 75+ |
>>> > | Frequency | 15    | 15    | 16    | 16    | 15    | 11  |
>>> > | %         | 17    | 17    | 18    | 18    | 17    | 12  |
>>> >
>>> > *alcgp*
>>> > | n  | missing | unique |
>>> > | 88 | 0       | 4      |
>>> >
>>> >  0-39g/day (23, 26%), 40-79 (23, 26%), 80-119 (21, 24%), 120+ (21, 24%)
>>> >
>>> > *tobgp*
>>> > | n  | missing | unique |
>>> > | 88 | 0       | 4      |
>>> >
>>> >  0-9g/day (24, 27%), 10-19 (24, 27%), 20-29 (20, 23%), 30+ (20, 23%)
>>> >
>>> > As you can see, describe() generate a description of my data, and ascii
>>> > generate org-mode markup as result. The result contains empty rows. Since
>>> > there is no special characters indicating the end of the results in
>>> babel,
>>> > replace option will not work in this case. Is there any workaround?
>>> >
>>>
>>> When using ":results org" there is no workaround, as the explicit
>>> purpose of this setting is for your results to be inserted directly into
>>> the Org-mode buffer w/o any interpretation or alteration.
>>>
>>
>>
>>>
>>> In general I would recommend keeping a 1-to-1 mapping between code
>>> blocks and result items, which should resolve this issue.
>>>
>>> >
>>> > Of course, ascii is not usefull in this case, but it can coerce into
>>> > org-mode markup many other R objects (see my previous example and
>>> > http://orgmode.org/worg/org-contrib/babel/examples/ascii.php)
>>> >
>>>
>>> I see, that answers my question from above. Thanks
>>>
>>> Hope this helps -- Eric
>>>
>>> >
>>> > David
>>> >
>>> >
>>> > On Tue, Aug 17, 2010 at 15:57, Eric Schulte <schulte.eric@gmail.com>
>>> wrote:
>>> >
>>> >> Hi David,
>>> >>
>>> >> It seems that the problem here is in the ascii package.  It is inserting
>>> >> an empty line at the beginning of your table, so that the table is not
>>> >> snugly sitting under the #+results foo tag, because of this the table
>>> >> isn't seen as results and is not replaced -- if you delete that space
>>> >> then re-run the code block you'll notice that the table is replaced.
>>> >>
>>> >> Org-mode is very capable of inserting tabular data into Org-mode
>>> >> documents without using the ascii package.  For example the following
>>> >> would be a more idiomatic example of using Org-mode to create a table
>>> >> from R code.
>>> >>
>>> >> --8<---------------cut here---------------start------------->8---
>>> >> #+begin_src R
>>> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>>> >>  numbers
>>> >> #+end_src
>>> >>
>>> >> #+results:
>>> >> | 51 | 43 | 22 |
>>> >> | 92 | 28 | 21 |
>>> >> | 68 | 22 |  9 |
>>> >>
>>> >> #+begin_src R :colnames yes
>>> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>>> >>  numbers
>>> >> #+end_src
>>> >>
>>> >> #+results:
>>> >> | V1 | V2 | V3 |
>>> >> |----+----+----|
>>> >> | 51 | 43 | 22 |
>>> >> | 92 | 28 | 21 |
>>> >> | 68 | 22 |  9 |
>>> >> --8<---------------cut here---------------end--------------->8---
>>> >>
>>> >> or applied to your example, the following code block should generate the
>>> >> desired results.
>>> >>
>>> >> --8<---------------cut here---------------start------------->8---
>>> >> #+srcname: foo
>>> >> #+begin_src R :session *R*
>>> >>   head(esoph)
>>> >> #+end_src
>>> >> --8<---------------cut here---------------end--------------->8---
>>> >>
>>> >> One last small note: the "replace" argument to :results is normally the
>>> >> default value, and doesn't need to be explicitly added (although I can
>>> >> see why you would have added it in this case since it wasn't working as
>>> >> expected).
>>> >>
>>> >> Cheers -- Eric
>>> >>
>>> >> David Hajage <dhajage@gmail.com> writes:
>>> >>
>>> >> > I tried the code with the last development version of org-mode:
>>> >> >
>>> >> > #+srcname: foo
>>> >> > #+begin_src R :session *R* :results output org replace
>>> >> >   library(ascii)
>>> >> >   options(asciiType = "org")
>>> >> >   ascii(head(esoph))
>>> >> > #+end_src
>>> >> >
>>> >> > #+results: foo
>>> >> >
>>> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>> >> > |---+-------+-----------+----------+--------+-----------|
>>> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>> >> >
>>> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>> >> > |---+-------+-----------+----------+--------+-----------|
>>> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>> >> >
>>> >> > There is no more ">", but an extra space.
>>> >> > But, the replace option doesn't work: results are still appended. I am
>>> >> not
>>> >> > an org-mode guru (far, far away), but I think this is because when
>>> output
>>> >> is
>>> >> > org, there is no indication about the "end" of the results.
>>> >> >
>>> >> > David
>>> >> >
>>> >> >
>>> >> > On Tue, Aug 17, 2010 at 10:17, David Hajage <dhajage@gmail.com>
>>> wrote:
>>> >> >
>>> >> >> Hello,
>>> >> >>
>>> >> >> I am trying to use babel with R. Here the code:
>>> >> >>
>>> >> >> #+srcname: foo
>>> >> >> #+begin_src R :session *R* :results output org replace
>>> >> >>   library(ascii)
>>> >> >>   options(asciiType = "org")
>>> >> >>   ascii(head(esoph))
>>> >> >> #+end_src
>>> >> >>
>>> >> >> #+results: foo
>>> >> >>
>>> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>> >> >> |---+-------+-----------+----------+--------+-----------|
>>> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>> >> >>
>>> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>> >> >> |---+-------+-----------+----------+--------+-----------|
>>> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>> >> >>
>>> >> >> With org-mode 7.01g in emacs 23, there is two problems:
>>> >> >>  - an extra ">" is added in the first line while output is "org"
>>> >> >>  - when I run the code twice, the new results is appended, while I
>>> have
>>> >> the
>>> >> >> option "replace".
>>> >> >>
>>> >> >> Is there any problem with my header?
>>> >> >>
>>> >> >> Thank you very much for your help.
>>> >> >> David
>>> >> >>
>>> >> > _______________________________________________
>>> >> > Emacs-orgmode mailing list
>>> >> > Please use `Reply All' to send replies to the list.
>>> >> > Emacs-orgmode@gnu.org
>>> >> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>> >>
>>>
>>> Footnotes:
>>> [1]  http://orgmode.org/manual/Header-arguments.html#Header-arguments
>>>
>>> [2]
>>> http://orgmode.org/manual/Results-of-evaluation.html#Results-of-evaluation
>>>
>>>
>>> L'intégrité de ce message n'étant pas assurée sur Internet, l'Institut
>>> Curie ne peut être tenu responsable de son contenu.
>>> Si vous n'êtes pas destinataire de ce message confidentiel, merci de le
>>> détruire et d'avertir immédiatement l'expéditeur.
>>> Afin de contribuer au respect de l'environnement, merci de n'imprimer ce
>>> mail qu'en cas de nécessité.
>>>

Footnotes: 
[1]  
,----[org-babel-insert-result]
| org-babel-insert-result is a Lisp function in `ob.el'.
| 
| (org-babel-insert-result RESULT &optional RESULT-PARAMS INFO HASH
| INDENT LANG)
| 
| Insert RESULT into the current buffer.
| By default RESULT is inserted after the end of the
| current source block.  With optional argument RESULT-PARAMS
| controls insertion of results in the org-mode file.
| RESULT-PARAMS can take the following values...
| 
| replace - (default option) insert results after the source block
|           replacing any previously inserted results
| 
| silent -- no results are inserted
| 
| file ---- the results are interpreted as a file path, and are
|           inserted into the buffer using the Org-mode file syntax
| 
| raw ----- results are added directly to the org-mode file.  This
|           is a good option if you code block will output org-mode
|           formatted text.
| 
| org ----- this is the same as the 'raw' option
| 
| html ---- results are added inside of a #+BEGIN_HTML block.  This
|           is a good option if you code block will output html
|           formatted text.
| 
| latex --- results are added inside of a #+BEGIN_LATEX block.
|           This is a good option if you code block will output
|           latex formatted text.
| 
| code ---- the results are extracted in the syntax of the source
|           code of the language being evaluated and are added
|           inside of a #+BEGIN_SRC block with the source-code
|           language set appropriately.  Note this relies on the
|           optional LANG argument.
| 
| [back]
`----

[2]  
,----
| ob-org has two non-standard header arguments in that it exports it's
| results by default and the result type defaults to raw, this ensures
| that the body of a begin_src org block exports transparently.
| 
| This is a breaking change in that if you are currently using org
| code blocks to export org-fontified code you will have to set the
| ":exports" header argument for org-mode blocks to "code" on a block,
| file, language or system-wide basis.
`----

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Re: problem with babel and R
  2010-08-26 16:10             ` Eric Schulte
@ 2010-08-26 20:20               ` David Hajage
  2010-08-26 21:51                 ` David Hajage
  0 siblings, 1 reply; 13+ messages in thread
From: David Hajage @ 2010-08-26 20:20 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 17936 bytes --]

I am so sorry to bother you again, but I must miss something.

When I write:

#+begin_src R :results output org :exports both
library(ascii)
options(asciiType = "org")
ascii(head(esoph))
#+end_src

The results is:

#+results:
#+BEGIN_SRC org
|   | agegp | alcgp     | tobgp    | ncases | ncontrols |
|---+-------+-----------+----------+--------+-----------|
| 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
| 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
| 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
| 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
| 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
| 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
#+END_SRC

OK, the result is surrounded by BEGIN_SRC org/END_SRC. But when I export
this, the results is exported as fontified org code. What should I do to
have this result interpreted as org markup?
David


On Thu, Aug 26, 2010 at 18:10, Eric Schulte <schulte.eric@gmail.com> wrote:

> Hi,
>
> A fix to this issue has been pushed up to the repository.  As can now be
> read in the documentation of the `org-babel-insert-result' function [1],
> there is now a subtle distinction between ":results org" and ":results
> raw", where ":results org" will wrap code block results in a "begin_src
> org" block.  The block wrapper makes it possible for the entirety of the
> results to be located and removed by Babel upon code block
> re-evaluation.
>
> In addition a new ob-org.el file has been added providing support for
> evaluation of Org-mode blocks.  With this new language support loaded
> the above technique becomes a working replacement for ":results raw"
> allowing the body of the org code block to be interpreted as inline
> org-mode text on export.  This is done through some non-standard default
> header arguments described in the recent commit message (see [2])
>
> Best -- Eric
>
> "Eric Schulte" <schulte.eric@gmail.com> writes:
>
> > Hi David,
> >
> > "#+end_results: foo" (or some derivative syntax) sounds like a good
> > idea, I'll add it to the Babel task list.
> >
> > Thanks -- Eric
> >
> > David Hajage <dhajage@gmail.com> writes:
> >
> >> OK, I understand that using ":results org", the results is not altered,
> >> there is no post processing. But I don't want a post processing, I would
> >> like a way to tell babel where is the begining *and the end* of the
> output
> >> produces by a particular R source block. I think an "#+end_results: foo"
> at
> >> the end of the output could do the job. Then, the option "replace" could
> >> work in all situation, even if a blank line is inserted somewhere in the
> org
> >> output. No?
> >> David
> >>
> >>
> >> On Tue, Aug 17, 2010 at 17:15, Eric Schulte <schulte.eric@gmail.com>
> wrote:
> >>
> >>> Hi David,
> >>>
> >>> David Hajage <dhajage@gmail.com> writes:
> >>>
> >>> > Thank you very much for your answer.
> >>> >
> >>>
> >>> My pleasure
> >>>
> >>> >
> >>> > But when I run the following code directly into R, no extra lines is
> >>> >added
> >>> > by the ascii function:
> >>> >> library(ascii)
> >>> > Le chargement a nécessité le package : proto
> >>> >> options(asciiType = "org")
> >>> >> ascii(head(esoph)) # no extra line
> >>> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> >>> > |---+-------+-----------+----------+--------+-----------|
> >>> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> >>> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> >>> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> >>> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> >>> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> >>> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >>> >
> >>>
> >>> ah, my fault, this isn't an ascii issue.
> >>>
> >>> >
> >>> > In fact, the solution was to run 'library(ascii)' in another source
> >>> block.
> >>> > When I run only this:
> >>> >
> >>>
> >>> Thanks for pointing this out, I see what's happening now.
> >>>
> >>> The :results output header argument (see [1] for information on header
> >>> arguments) informs Org-mode to collect all of the output of the source
> >>> code block.  This means that when library(ascii) is run, an empty line
> >>> is collected and appended to the output.  Removing the "output" header
> >>> argument should fix this issue.
> >>>
> >>> My I ask why you are using the ascii package for simple table output?
> >>> It seems to me that this would be much simpler using the pure Org-mode
> >>> solution I suggested in my previous email.
> >>>
> >>> >
> >>> > #+begin_src R :session *R* :results output org replace
> >>> >   ascii(head(esoph))
> >>> > #+end_src
> >>> >
> >>> > #+results: foo
> >>> > |   | agegp | alcgp     |    tobgp | ncases | ncontrols |
> >>> > |---+-------+-----------+----------+--------+-----------|
> >>> > | 1 | 25-34 | 0-39g/day | 0-9g/day |   0.00 |     40.00 |
> >>> > | 2 | 25-34 | 0-39g/day |    10-19 |   0.00 |     10.00 |
> >>> > | 3 | 25-34 | 0-39g/day |    20-29 |   0.00 |      6.00 |
> >>> > | 4 | 25-34 | 0-39g/day |      30+ |   0.00 |      5.00 |
> >>> > | 5 | 25-34 | 40-79     | 0-9g/day |   0.00 |     27.00 |
> >>> > | 6 | 25-34 | 40-79     |    10-19 |   0.00 |      7.00 |
> >>> >
> >>> > Everything is then OK.
> >>> > I have no idea why "library(ascii)..." generates an extra empty line
> in
> >>> the
> >>> > results.
> >>> >
> >>> > If I understand, the results is all the text directly under
> "#+results:",
> >>> > until the first empty line. But what happens if the result contains
> empty
> >>> > lines? Here an example with ascii and Hmisc package:
> >>> >
> >>>
> >>> This is not quite right, see [2] for a discussion of results handling.
> >>> The "org" option to results is a special case in which no
> >>> post-processing of the results takes place, and the raw output is
> >>> inserted into the org-mode buffer.
> >>>
> >>> Under normal usage w/o this header argument, results are either tabular
> >>> or are textual.  If tabular a single table can easily be recognized and
> >>> handled, if textual they are normally enclosed in a block (example,
> >>> html, latex, etc...), the block then allows for empty lines while still
> >>> making it clear where the results end.
> >>>
> >>
> >>
> >>>
> >>> >
> >>> >> library(ascii)
> >>> >> library(Hmisc)
> >>> >> ascii(describe(esoph[, 1:3]))
> >>> > #+CAPTION: esoph[, 1:3]
> >>> > - 3 Variable
> >>> > - 88 Observations
> >>> >
> >>> > *agegp*
> >>> > | n  | missing | unique |
> >>> > | 88 | 0       | 6      |
> >>> >
> >>> > |           | 25-34 | 35-44 | 45-54 | 55-64 | 65-74 | 75+ |
> >>> > | Frequency | 15    | 15    | 16    | 16    | 15    | 11  |
> >>> > | %         | 17    | 17    | 18    | 18    | 17    | 12  |
> >>> >
> >>> > *alcgp*
> >>> > | n  | missing | unique |
> >>> > | 88 | 0       | 4      |
> >>> >
> >>> >  0-39g/day (23, 26%), 40-79 (23, 26%), 80-119 (21, 24%), 120+ (21,
> 24%)
> >>> >
> >>> > *tobgp*
> >>> > | n  | missing | unique |
> >>> > | 88 | 0       | 4      |
> >>> >
> >>> >  0-9g/day (24, 27%), 10-19 (24, 27%), 20-29 (20, 23%), 30+ (20, 23%)
> >>> >
> >>> > As you can see, describe() generate a description of my data, and
> ascii
> >>> > generate org-mode markup as result. The result contains empty rows.
> Since
> >>> > there is no special characters indicating the end of the results in
> >>> babel,
> >>> > replace option will not work in this case. Is there any workaround?
> >>> >
> >>>
> >>> When using ":results org" there is no workaround, as the explicit
> >>> purpose of this setting is for your results to be inserted directly
> into
> >>> the Org-mode buffer w/o any interpretation or alteration.
> >>>
> >>
> >>
> >>>
> >>> In general I would recommend keeping a 1-to-1 mapping between code
> >>> blocks and result items, which should resolve this issue.
> >>>
> >>> >
> >>> > Of course, ascii is not usefull in this case, but it can coerce into
> >>> > org-mode markup many other R objects (see my previous example and
> >>> > http://orgmode.org/worg/org-contrib/babel/examples/ascii.php)
> >>> >
> >>>
> >>> I see, that answers my question from above. Thanks
> >>>
> >>> Hope this helps -- Eric
> >>>
> >>> >
> >>> > David
> >>> >
> >>> >
> >>> > On Tue, Aug 17, 2010 at 15:57, Eric Schulte <schulte.eric@gmail.com>
> >>> wrote:
> >>> >
> >>> >> Hi David,
> >>> >>
> >>> >> It seems that the problem here is in the ascii package.  It is
> inserting
> >>> >> an empty line at the beginning of your table, so that the table is
> not
> >>> >> snugly sitting under the #+results foo tag, because of this the
> table
> >>> >> isn't seen as results and is not replaced -- if you delete that
> space
> >>> >> then re-run the code block you'll notice that the table is replaced.
> >>> >>
> >>> >> Org-mode is very capable of inserting tabular data into Org-mode
> >>> >> documents without using the ascii package.  For example the
> following
> >>> >> would be a more idiomatic example of using Org-mode to create a
> table
> >>> >> from R code.
> >>> >>
> >>> >> --8<---------------cut here---------------start------------->8---
> >>> >> #+begin_src R
> >>> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
> >>> >>  numbers
> >>> >> #+end_src
> >>> >>
> >>> >> #+results:
> >>> >> | 51 | 43 | 22 |
> >>> >> | 92 | 28 | 21 |
> >>> >> | 68 | 22 |  9 |
> >>> >>
> >>> >> #+begin_src R :colnames yes
> >>> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
> >>> >>  numbers
> >>> >> #+end_src
> >>> >>
> >>> >> #+results:
> >>> >> | V1 | V2 | V3 |
> >>> >> |----+----+----|
> >>> >> | 51 | 43 | 22 |
> >>> >> | 92 | 28 | 21 |
> >>> >> | 68 | 22 |  9 |
> >>> >> --8<---------------cut here---------------end--------------->8---
> >>> >>
> >>> >> or applied to your example, the following code block should generate
> the
> >>> >> desired results.
> >>> >>
> >>> >> --8<---------------cut here---------------start------------->8---
> >>> >> #+srcname: foo
> >>> >> #+begin_src R :session *R*
> >>> >>   head(esoph)
> >>> >> #+end_src
> >>> >> --8<---------------cut here---------------end--------------->8---
> >>> >>
> >>> >> One last small note: the "replace" argument to :results is normally
> the
> >>> >> default value, and doesn't need to be explicitly added (although I
> can
> >>> >> see why you would have added it in this case since it wasn't working
> as
> >>> >> expected).
> >>> >>
> >>> >> Cheers -- Eric
> >>> >>
> >>> >> David Hajage <dhajage@gmail.com> writes:
> >>> >>
> >>> >> > I tried the code with the last development version of org-mode:
> >>> >> >
> >>> >> > #+srcname: foo
> >>> >> > #+begin_src R :session *R* :results output org replace
> >>> >> >   library(ascii)
> >>> >> >   options(asciiType = "org")
> >>> >> >   ascii(head(esoph))
> >>> >> > #+end_src
> >>> >> >
> >>> >> > #+results: foo
> >>> >> >
> >>> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> >>> >> > |---+-------+-----------+----------+--------+-----------|
> >>> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> >>> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> >>> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> >>> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> >>> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> >>> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >>> >> >
> >>> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> >>> >> > |---+-------+-----------+----------+--------+-----------|
> >>> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> >>> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> >>> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> >>> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> >>> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> >>> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >>> >> >
> >>> >> > There is no more ">", but an extra space.
> >>> >> > But, the replace option doesn't work: results are still appended.
> I am
> >>> >> not
> >>> >> > an org-mode guru (far, far away), but I think this is because when
> >>> output
> >>> >> is
> >>> >> > org, there is no indication about the "end" of the results.
> >>> >> >
> >>> >> > David
> >>> >> >
> >>> >> >
> >>> >> > On Tue, Aug 17, 2010 at 10:17, David Hajage <dhajage@gmail.com>
> >>> wrote:
> >>> >> >
> >>> >> >> Hello,
> >>> >> >>
> >>> >> >> I am trying to use babel with R. Here the code:
> >>> >> >>
> >>> >> >> #+srcname: foo
> >>> >> >> #+begin_src R :session *R* :results output org replace
> >>> >> >>   library(ascii)
> >>> >> >>   options(asciiType = "org")
> >>> >> >>   ascii(head(esoph))
> >>> >> >> #+end_src
> >>> >> >>
> >>> >> >> #+results: foo
> >>> >> >>
> >>> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> >>> >> >> |---+-------+-----------+----------+--------+-----------|
> >>> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> >>> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> >>> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> >>> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> >>> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> >>> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >>> >> >>
> >>> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> >>> >> >> |---+-------+-----------+----------+--------+-----------|
> >>> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> >>> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> >>> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> >>> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> >>> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> >>> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> >>> >> >>
> >>> >> >> With org-mode 7.01g in emacs 23, there is two problems:
> >>> >> >>  - an extra ">" is added in the first line while output is "org"
> >>> >> >>  - when I run the code twice, the new results is appended, while
> I
> >>> have
> >>> >> the
> >>> >> >> option "replace".
> >>> >> >>
> >>> >> >> Is there any problem with my header?
> >>> >> >>
> >>> >> >> Thank you very much for your help.
> >>> >> >> David
> >>> >> >>
> >>> >> > _______________________________________________
> >>> >> > Emacs-orgmode mailing list
> >>> >> > Please use `Reply All' to send replies to the list.
> >>> >> > Emacs-orgmode@gnu.org
> >>> >> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
> >>> >>
> >>>
> >>> Footnotes:
> >>> [1]  http://orgmode.org/manual/Header-arguments.html#Header-arguments
> >>>
> >>> [2]
> >>>
> http://orgmode.org/manual/Results-of-evaluation.html#Results-of-evaluation
> >>>
> >>>
> >>> L'intégrité de ce message n'étant pas assurée sur Internet, l'Institut
> >>> Curie ne peut être tenu responsable de son contenu.
> >>> Si vous n'êtes pas destinataire de ce message confidentiel, merci de le
> >>> détruire et d'avertir immédiatement l'expéditeur.
> >>> Afin de contribuer au respect de l'environnement, merci de n'imprimer
> ce
> >>> mail qu'en cas de nécessité.
> >>>
>
> Footnotes:
> [1]
> ,----[org-babel-insert-result]
> | org-babel-insert-result is a Lisp function in `ob.el'.
> |
> | (org-babel-insert-result RESULT &optional RESULT-PARAMS INFO HASH
> | INDENT LANG)
> |
> | Insert RESULT into the current buffer.
> | By default RESULT is inserted after the end of the
> | current source block.  With optional argument RESULT-PARAMS
> | controls insertion of results in the org-mode file.
> | RESULT-PARAMS can take the following values...
> |
> | replace - (default option) insert results after the source block
> |           replacing any previously inserted results
> |
> | silent -- no results are inserted
> |
> | file ---- the results are interpreted as a file path, and are
> |           inserted into the buffer using the Org-mode file syntax
> |
> | raw ----- results are added directly to the org-mode file.  This
> |           is a good option if you code block will output org-mode
> |           formatted text.
> |
> | org ----- this is the same as the 'raw' option
> |
> | html ---- results are added inside of a #+BEGIN_HTML block.  This
> |           is a good option if you code block will output html
> |           formatted text.
> |
> | latex --- results are added inside of a #+BEGIN_LATEX block.
> |           This is a good option if you code block will output
> |           latex formatted text.
> |
> | code ---- the results are extracted in the syntax of the source
> |           code of the language being evaluated and are added
> |           inside of a #+BEGIN_SRC block with the source-code
> |           language set appropriately.  Note this relies on the
> |           optional LANG argument.
> |
> | [back]
> `----
>
> [2]
> ,----
> | ob-org has two non-standard header arguments in that it exports it's
> | results by default and the result type defaults to raw, this ensures
> | that the body of a begin_src org block exports transparently.
> |
> | This is a breaking change in that if you are currently using org
> | code blocks to export org-fontified code you will have to set the
> | ":exports" header argument for org-mode blocks to "code" on a block,
> | file, language or system-wide basis.
> `----
>

[-- Attachment #1.2: Type: text/html, Size: 24873 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Re: problem with babel and R
  2010-08-26 20:20               ` David Hajage
@ 2010-08-26 21:51                 ` David Hajage
  2010-08-26 22:06                   ` David Hajage
  0 siblings, 1 reply; 13+ messages in thread
From: David Hajage @ 2010-08-26 21:51 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 18629 bytes --]

Oups, I forgot ob-org in my .emacs... OK, now, really sorry for this.
David


On Thu, Aug 26, 2010 at 22:20, David Hajage <dhajage@gmail.com> wrote:

> I am so sorry to bother you again, but I must miss something.
>
> When I write:
>
> #+begin_src R :results output org :exports both
> library(ascii)
> options(asciiType = "org")
> ascii(head(esoph))
> #+end_src
>
> The results is:
>
> #+results:
> #+BEGIN_SRC org
> |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> |---+-------+-----------+----------+--------+-----------|
> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
> #+END_SRC
>
> OK, the result is surrounded by BEGIN_SRC org/END_SRC. But when I export
> this, the results is exported as fontified org code. What should I do to
> have this result interpreted as org markup?
> David
>
>
>
> On Thu, Aug 26, 2010 at 18:10, Eric Schulte <schulte.eric@gmail.com>wrote:
>
>> Hi,
>>
>> A fix to this issue has been pushed up to the repository.  As can now be
>> read in the documentation of the `org-babel-insert-result' function [1],
>> there is now a subtle distinction between ":results org" and ":results
>> raw", where ":results org" will wrap code block results in a "begin_src
>> org" block.  The block wrapper makes it possible for the entirety of the
>> results to be located and removed by Babel upon code block
>> re-evaluation.
>>
>> In addition a new ob-org.el file has been added providing support for
>> evaluation of Org-mode blocks.  With this new language support loaded
>> the above technique becomes a working replacement for ":results raw"
>> allowing the body of the org code block to be interpreted as inline
>> org-mode text on export.  This is done through some non-standard default
>> header arguments described in the recent commit message (see [2])
>>
>> Best -- Eric
>>
>> "Eric Schulte" <schulte.eric@gmail.com> writes:
>>
>> > Hi David,
>> >
>> > "#+end_results: foo" (or some derivative syntax) sounds like a good
>> > idea, I'll add it to the Babel task list.
>> >
>> > Thanks -- Eric
>> >
>> > David Hajage <dhajage@gmail.com> writes:
>> >
>> >> OK, I understand that using ":results org", the results is not altered,
>> >> there is no post processing. But I don't want a post processing, I
>> would
>> >> like a way to tell babel where is the begining *and the end* of the
>> output
>> >> produces by a particular R source block. I think an "#+end_results:
>> foo" at
>> >> the end of the output could do the job. Then, the option "replace"
>> could
>> >> work in all situation, even if a blank line is inserted somewhere in
>> the org
>> >> output. No?
>> >> David
>> >>
>> >>
>> >> On Tue, Aug 17, 2010 at 17:15, Eric Schulte <schulte.eric@gmail.com>
>> wrote:
>> >>
>> >>> Hi David,
>> >>>
>> >>> David Hajage <dhajage@gmail.com> writes:
>> >>>
>> >>> > Thank you very much for your answer.
>> >>> >
>> >>>
>> >>> My pleasure
>> >>>
>> >>> >
>> >>> > But when I run the following code directly into R, no extra lines is
>> >>> >added
>> >>> > by the ascii function:
>> >>> >> library(ascii)
>> >>> > Le chargement a nécessité le package : proto
>> >>> >> options(asciiType = "org")
>> >>> >> ascii(head(esoph)) # no extra line
>> >>> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> >>> > |---+-------+-----------+----------+--------+-----------|
>> >>> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> >>> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> >>> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> >>> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> >>> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> >>> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >>> >
>> >>>
>> >>> ah, my fault, this isn't an ascii issue.
>> >>>
>> >>> >
>> >>> > In fact, the solution was to run 'library(ascii)' in another source
>> >>> block.
>> >>> > When I run only this:
>> >>> >
>> >>>
>> >>> Thanks for pointing this out, I see what's happening now.
>> >>>
>> >>> The :results output header argument (see [1] for information on header
>> >>> arguments) informs Org-mode to collect all of the output of the source
>> >>> code block.  This means that when library(ascii) is run, an empty line
>> >>> is collected and appended to the output.  Removing the "output" header
>> >>> argument should fix this issue.
>> >>>
>> >>> My I ask why you are using the ascii package for simple table output?
>> >>> It seems to me that this would be much simpler using the pure Org-mode
>> >>> solution I suggested in my previous email.
>> >>>
>> >>> >
>> >>> > #+begin_src R :session *R* :results output org replace
>> >>> >   ascii(head(esoph))
>> >>> > #+end_src
>> >>> >
>> >>> > #+results: foo
>> >>> > |   | agegp | alcgp     |    tobgp | ncases | ncontrols |
>> >>> > |---+-------+-----------+----------+--------+-----------|
>> >>> > | 1 | 25-34 | 0-39g/day | 0-9g/day |   0.00 |     40.00 |
>> >>> > | 2 | 25-34 | 0-39g/day |    10-19 |   0.00 |     10.00 |
>> >>> > | 3 | 25-34 | 0-39g/day |    20-29 |   0.00 |      6.00 |
>> >>> > | 4 | 25-34 | 0-39g/day |      30+ |   0.00 |      5.00 |
>> >>> > | 5 | 25-34 | 40-79     | 0-9g/day |   0.00 |     27.00 |
>> >>> > | 6 | 25-34 | 40-79     |    10-19 |   0.00 |      7.00 |
>> >>> >
>> >>> > Everything is then OK.
>> >>> > I have no idea why "library(ascii)..." generates an extra empty line
>> in
>> >>> the
>> >>> > results.
>> >>> >
>> >>> > If I understand, the results is all the text directly under
>> "#+results:",
>> >>> > until the first empty line. But what happens if the result contains
>> empty
>> >>> > lines? Here an example with ascii and Hmisc package:
>> >>> >
>> >>>
>> >>> This is not quite right, see [2] for a discussion of results handling.
>> >>> The "org" option to results is a special case in which no
>> >>> post-processing of the results takes place, and the raw output is
>> >>> inserted into the org-mode buffer.
>> >>>
>> >>> Under normal usage w/o this header argument, results are either
>> tabular
>> >>> or are textual.  If tabular a single table can easily be recognized
>> and
>> >>> handled, if textual they are normally enclosed in a block (example,
>> >>> html, latex, etc...), the block then allows for empty lines while
>> still
>> >>> making it clear where the results end.
>> >>>
>> >>
>> >>
>> >>>
>> >>> >
>> >>> >> library(ascii)
>> >>> >> library(Hmisc)
>> >>> >> ascii(describe(esoph[, 1:3]))
>> >>> > #+CAPTION: esoph[, 1:3]
>> >>> > - 3 Variable
>> >>> > - 88 Observations
>> >>> >
>> >>> > *agegp*
>> >>> > | n  | missing | unique |
>> >>> > | 88 | 0       | 6      |
>> >>> >
>> >>> > |           | 25-34 | 35-44 | 45-54 | 55-64 | 65-74 | 75+ |
>> >>> > | Frequency | 15    | 15    | 16    | 16    | 15    | 11  |
>> >>> > | %         | 17    | 17    | 18    | 18    | 17    | 12  |
>> >>> >
>> >>> > *alcgp*
>> >>> > | n  | missing | unique |
>> >>> > | 88 | 0       | 4      |
>> >>> >
>> >>> >  0-39g/day (23, 26%), 40-79 (23, 26%), 80-119 (21, 24%), 120+ (21,
>> 24%)
>> >>> >
>> >>> > *tobgp*
>> >>> > | n  | missing | unique |
>> >>> > | 88 | 0       | 4      |
>> >>> >
>> >>> >  0-9g/day (24, 27%), 10-19 (24, 27%), 20-29 (20, 23%), 30+ (20, 23%)
>> >>> >
>> >>> > As you can see, describe() generate a description of my data, and
>> ascii
>> >>> > generate org-mode markup as result. The result contains empty rows.
>> Since
>> >>> > there is no special characters indicating the end of the results in
>> >>> babel,
>> >>> > replace option will not work in this case. Is there any workaround?
>> >>> >
>> >>>
>> >>> When using ":results org" there is no workaround, as the explicit
>> >>> purpose of this setting is for your results to be inserted directly
>> into
>> >>> the Org-mode buffer w/o any interpretation or alteration.
>> >>>
>> >>
>> >>
>> >>>
>> >>> In general I would recommend keeping a 1-to-1 mapping between code
>> >>> blocks and result items, which should resolve this issue.
>> >>>
>> >>> >
>> >>> > Of course, ascii is not usefull in this case, but it can coerce into
>> >>> > org-mode markup many other R objects (see my previous example and
>> >>> > http://orgmode.org/worg/org-contrib/babel/examples/ascii.php)
>> >>> >
>> >>>
>> >>> I see, that answers my question from above. Thanks
>> >>>
>> >>> Hope this helps -- Eric
>> >>>
>> >>> >
>> >>> > David
>> >>> >
>> >>> >
>> >>> > On Tue, Aug 17, 2010 at 15:57, Eric Schulte <schulte.eric@gmail.com
>> >
>> >>> wrote:
>> >>> >
>> >>> >> Hi David,
>> >>> >>
>> >>> >> It seems that the problem here is in the ascii package.  It is
>> inserting
>> >>> >> an empty line at the beginning of your table, so that the table is
>> not
>> >>> >> snugly sitting under the #+results foo tag, because of this the
>> table
>> >>> >> isn't seen as results and is not replaced -- if you delete that
>> space
>> >>> >> then re-run the code block you'll notice that the table is
>> replaced.
>> >>> >>
>> >>> >> Org-mode is very capable of inserting tabular data into Org-mode
>> >>> >> documents without using the ascii package.  For example the
>> following
>> >>> >> would be a more idiomatic example of using Org-mode to create a
>> table
>> >>> >> from R code.
>> >>> >>
>> >>> >> --8<---------------cut here---------------start------------->8---
>> >>> >> #+begin_src R
>> >>> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>> >>> >>  numbers
>> >>> >> #+end_src
>> >>> >>
>> >>> >> #+results:
>> >>> >> | 51 | 43 | 22 |
>> >>> >> | 92 | 28 | 21 |
>> >>> >> | 68 | 22 |  9 |
>> >>> >>
>> >>> >> #+begin_src R :colnames yes
>> >>> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>> >>> >>  numbers
>> >>> >> #+end_src
>> >>> >>
>> >>> >> #+results:
>> >>> >> | V1 | V2 | V3 |
>> >>> >> |----+----+----|
>> >>> >> | 51 | 43 | 22 |
>> >>> >> | 92 | 28 | 21 |
>> >>> >> | 68 | 22 |  9 |
>> >>> >> --8<---------------cut here---------------end--------------->8---
>> >>> >>
>> >>> >> or applied to your example, the following code block should
>> generate the
>> >>> >> desired results.
>> >>> >>
>> >>> >> --8<---------------cut here---------------start------------->8---
>> >>> >> #+srcname: foo
>> >>> >> #+begin_src R :session *R*
>> >>> >>   head(esoph)
>> >>> >> #+end_src
>> >>> >> --8<---------------cut here---------------end--------------->8---
>> >>> >>
>> >>> >> One last small note: the "replace" argument to :results is normally
>> the
>> >>> >> default value, and doesn't need to be explicitly added (although I
>> can
>> >>> >> see why you would have added it in this case since it wasn't
>> working as
>> >>> >> expected).
>> >>> >>
>> >>> >> Cheers -- Eric
>> >>> >>
>> >>> >> David Hajage <dhajage@gmail.com> writes:
>> >>> >>
>> >>> >> > I tried the code with the last development version of org-mode:
>> >>> >> >
>> >>> >> > #+srcname: foo
>> >>> >> > #+begin_src R :session *R* :results output org replace
>> >>> >> >   library(ascii)
>> >>> >> >   options(asciiType = "org")
>> >>> >> >   ascii(head(esoph))
>> >>> >> > #+end_src
>> >>> >> >
>> >>> >> > #+results: foo
>> >>> >> >
>> >>> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> >>> >> > |---+-------+-----------+----------+--------+-----------|
>> >>> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> >>> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> >>> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> >>> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> >>> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> >>> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >>> >> >
>> >>> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> >>> >> > |---+-------+-----------+----------+--------+-----------|
>> >>> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> >>> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> >>> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> >>> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> >>> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> >>> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >>> >> >
>> >>> >> > There is no more ">", but an extra space.
>> >>> >> > But, the replace option doesn't work: results are still appended.
>> I am
>> >>> >> not
>> >>> >> > an org-mode guru (far, far away), but I think this is because
>> when
>> >>> output
>> >>> >> is
>> >>> >> > org, there is no indication about the "end" of the results.
>> >>> >> >
>> >>> >> > David
>> >>> >> >
>> >>> >> >
>> >>> >> > On Tue, Aug 17, 2010 at 10:17, David Hajage <dhajage@gmail.com>
>> >>> wrote:
>> >>> >> >
>> >>> >> >> Hello,
>> >>> >> >>
>> >>> >> >> I am trying to use babel with R. Here the code:
>> >>> >> >>
>> >>> >> >> #+srcname: foo
>> >>> >> >> #+begin_src R :session *R* :results output org replace
>> >>> >> >>   library(ascii)
>> >>> >> >>   options(asciiType = "org")
>> >>> >> >>   ascii(head(esoph))
>> >>> >> >> #+end_src
>> >>> >> >>
>> >>> >> >> #+results: foo
>> >>> >> >>
>> >>> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> >>> >> >> |---+-------+-----------+----------+--------+-----------|
>> >>> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> >>> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> >>> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> >>> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> >>> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> >>> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >>> >> >>
>> >>> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> >>> >> >> |---+-------+-----------+----------+--------+-----------|
>> >>> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> >>> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> >>> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> >>> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> >>> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> >>> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> >>> >> >>
>> >>> >> >> With org-mode 7.01g in emacs 23, there is two problems:
>> >>> >> >>  - an extra ">" is added in the first line while output is "org"
>> >>> >> >>  - when I run the code twice, the new results is appended, while
>> I
>> >>> have
>> >>> >> the
>> >>> >> >> option "replace".
>> >>> >> >>
>> >>> >> >> Is there any problem with my header?
>> >>> >> >>
>> >>> >> >> Thank you very much for your help.
>> >>> >> >> David
>> >>> >> >>
>> >>> >> > _______________________________________________
>> >>> >> > Emacs-orgmode mailing list
>> >>> >> > Please use `Reply All' to send replies to the list.
>> >>> >> > Emacs-orgmode@gnu.org
>> >>> >> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>> >>> >>
>> >>>
>> >>> Footnotes:
>> >>> [1]  http://orgmode.org/manual/Header-arguments.html#Header-arguments
>> >>>
>> >>> [2]
>> >>>
>> http://orgmode.org/manual/Results-of-evaluation.html#Results-of-evaluation
>> >>>
>> >>>
>> >>> L'intégrité de ce message n'étant pas assurée sur Internet, l'Institut
>> >>> Curie ne peut être tenu responsable de son contenu.
>> >>> Si vous n'êtes pas destinataire de ce message confidentiel, merci de
>> le
>> >>> détruire et d'avertir immédiatement l'expéditeur.
>> >>> Afin de contribuer au respect de l'environnement, merci de n'imprimer
>> ce
>> >>> mail qu'en cas de nécessité.
>> >>>
>>
>> Footnotes:
>> [1]
>> ,----[org-babel-insert-result]
>> | org-babel-insert-result is a Lisp function in `ob.el'.
>> |
>> | (org-babel-insert-result RESULT &optional RESULT-PARAMS INFO HASH
>> | INDENT LANG)
>> |
>> | Insert RESULT into the current buffer.
>> | By default RESULT is inserted after the end of the
>> | current source block.  With optional argument RESULT-PARAMS
>> | controls insertion of results in the org-mode file.
>> | RESULT-PARAMS can take the following values...
>> |
>> | replace - (default option) insert results after the source block
>> |           replacing any previously inserted results
>> |
>> | silent -- no results are inserted
>> |
>> | file ---- the results are interpreted as a file path, and are
>> |           inserted into the buffer using the Org-mode file syntax
>> |
>> | raw ----- results are added directly to the org-mode file.  This
>> |           is a good option if you code block will output org-mode
>> |           formatted text.
>> |
>> | org ----- this is the same as the 'raw' option
>> |
>> | html ---- results are added inside of a #+BEGIN_HTML block.  This
>> |           is a good option if you code block will output html
>> |           formatted text.
>> |
>> | latex --- results are added inside of a #+BEGIN_LATEX block.
>> |           This is a good option if you code block will output
>> |           latex formatted text.
>> |
>> | code ---- the results are extracted in the syntax of the source
>> |           code of the language being evaluated and are added
>> |           inside of a #+BEGIN_SRC block with the source-code
>> |           language set appropriately.  Note this relies on the
>> |           optional LANG argument.
>> |
>> | [back]
>> `----
>>
>> [2]
>> ,----
>> | ob-org has two non-standard header arguments in that it exports it's
>> | results by default and the result type defaults to raw, this ensures
>> | that the body of a begin_src org block exports transparently.
>> |
>> | This is a breaking change in that if you are currently using org
>> | code blocks to export org-fontified code you will have to set the
>> | ":exports" header argument for org-mode blocks to "code" on a block,
>> | file, language or system-wide basis.
>> `----
>>
>
>

[-- Attachment #1.2: Type: text/html, Size: 25486 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Re: problem with babel and R
  2010-08-26 21:51                 ` David Hajage
@ 2010-08-26 22:06                   ` David Hajage
  2010-08-26 23:37                     ` Eric Schulte
  0 siblings, 1 reply; 13+ messages in thread
From: David Hajage @ 2010-08-26 22:06 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 20298 bytes --]

One comment:

When I execute all the buffer (org-babel-execute-buffer), the result is:

#+begin_src R :results output org :exports both
library(ascii)
options(asciiType = "org")
ascii(head(esoph, 3))
#+end_src

#+results:
#+BEGIN_SRC org
|   | agegp | alcgp     | tobgp    | ncases | ncontrols |
|---+-------+-----------+----------+--------+-----------|
| 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
| 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
| 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
#+END_SRC

#+results:
|   | agegp | alcgp     |    tobgp | ncases | ncontrols |
|---+-------+-----------+----------+--------+-----------|
| 1 | 25-34 | 0-39g/day | 0-9g/day |   0.00 |     40.00 |
| 2 | 25-34 | 0-39g/day |    10-19 |   0.00 |     10.00 |
| 3 | 25-34 | 0-39g/day |    20-29 |   0.00 |      6.00 |

Then, the results is repeated twice in the buffer. I understand why, but
perhaps the "silent" option should be turned on by default for org code
blocks?

David


On Thu, Aug 26, 2010 at 23:51, David Hajage <dhajage@gmail.com> wrote:

> Oups, I forgot ob-org in my .emacs... OK, now, really sorry for this.
> David
>
>
>
> On Thu, Aug 26, 2010 at 22:20, David Hajage <dhajage@gmail.com> wrote:
>
>> I am so sorry to bother you again, but I must miss something.
>>
>> When I write:
>>
>> #+begin_src R :results output org :exports both
>> library(ascii)
>> options(asciiType = "org")
>> ascii(head(esoph))
>> #+end_src
>>
>> The results is:
>>
>> #+results:
>> #+BEGIN_SRC org
>> |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>> |---+-------+-----------+----------+--------+-----------|
>> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>> #+END_SRC
>>
>> OK, the result is surrounded by BEGIN_SRC org/END_SRC. But when I export
>> this, the results is exported as fontified org code. What should I do to
>> have this result interpreted as org markup?
>> David
>>
>>
>>
>> On Thu, Aug 26, 2010 at 18:10, Eric Schulte <schulte.eric@gmail.com>wrote:
>>
>>> Hi,
>>>
>>> A fix to this issue has been pushed up to the repository.  As can now be
>>> read in the documentation of the `org-babel-insert-result' function [1],
>>> there is now a subtle distinction between ":results org" and ":results
>>> raw", where ":results org" will wrap code block results in a "begin_src
>>> org" block.  The block wrapper makes it possible for the entirety of the
>>> results to be located and removed by Babel upon code block
>>> re-evaluation.
>>>
>>> In addition a new ob-org.el file has been added providing support for
>>> evaluation of Org-mode blocks.  With this new language support loaded
>>> the above technique becomes a working replacement for ":results raw"
>>> allowing the body of the org code block to be interpreted as inline
>>> org-mode text on export.  This is done through some non-standard default
>>> header arguments described in the recent commit message (see [2])
>>>
>>> Best -- Eric
>>>
>>> "Eric Schulte" <schulte.eric@gmail.com> writes:
>>>
>>> > Hi David,
>>> >
>>> > "#+end_results: foo" (or some derivative syntax) sounds like a good
>>> > idea, I'll add it to the Babel task list.
>>> >
>>> > Thanks -- Eric
>>> >
>>> > David Hajage <dhajage@gmail.com> writes:
>>> >
>>> >> OK, I understand that using ":results org", the results is not
>>> altered,
>>> >> there is no post processing. But I don't want a post processing, I
>>> would
>>> >> like a way to tell babel where is the begining *and the end* of the
>>> output
>>> >> produces by a particular R source block. I think an "#+end_results:
>>> foo" at
>>> >> the end of the output could do the job. Then, the option "replace"
>>> could
>>> >> work in all situation, even if a blank line is inserted somewhere in
>>> the org
>>> >> output. No?
>>> >> David
>>> >>
>>> >>
>>> >> On Tue, Aug 17, 2010 at 17:15, Eric Schulte <schulte.eric@gmail.com>
>>> wrote:
>>> >>
>>> >>> Hi David,
>>> >>>
>>> >>> David Hajage <dhajage@gmail.com> writes:
>>> >>>
>>> >>> > Thank you very much for your answer.
>>> >>> >
>>> >>>
>>> >>> My pleasure
>>> >>>
>>> >>> >
>>> >>> > But when I run the following code directly into R, no extra lines
>>> is
>>> >>> >added
>>> >>> > by the ascii function:
>>> >>> >> library(ascii)
>>> >>> > Le chargement a nécessité le package : proto
>>> >>> >> options(asciiType = "org")
>>> >>> >> ascii(head(esoph)) # no extra line
>>> >>> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>> >>> > |---+-------+-----------+----------+--------+-----------|
>>> >>> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>> >>> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>> >>> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>> >>> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>> >>> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>> >>> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>> >>> >
>>> >>>
>>> >>> ah, my fault, this isn't an ascii issue.
>>> >>>
>>> >>> >
>>> >>> > In fact, the solution was to run 'library(ascii)' in another source
>>> >>> block.
>>> >>> > When I run only this:
>>> >>> >
>>> >>>
>>> >>> Thanks for pointing this out, I see what's happening now.
>>> >>>
>>> >>> The :results output header argument (see [1] for information on
>>> header
>>> >>> arguments) informs Org-mode to collect all of the output of the
>>> source
>>> >>> code block.  This means that when library(ascii) is run, an empty
>>> line
>>> >>> is collected and appended to the output.  Removing the "output"
>>> header
>>> >>> argument should fix this issue.
>>> >>>
>>> >>> My I ask why you are using the ascii package for simple table output?
>>> >>> It seems to me that this would be much simpler using the pure
>>> Org-mode
>>> >>> solution I suggested in my previous email.
>>> >>>
>>> >>> >
>>> >>> > #+begin_src R :session *R* :results output org replace
>>> >>> >   ascii(head(esoph))
>>> >>> > #+end_src
>>> >>> >
>>> >>> > #+results: foo
>>> >>> > |   | agegp | alcgp     |    tobgp | ncases | ncontrols |
>>> >>> > |---+-------+-----------+----------+--------+-----------|
>>> >>> > | 1 | 25-34 | 0-39g/day | 0-9g/day |   0.00 |     40.00 |
>>> >>> > | 2 | 25-34 | 0-39g/day |    10-19 |   0.00 |     10.00 |
>>> >>> > | 3 | 25-34 | 0-39g/day |    20-29 |   0.00 |      6.00 |
>>> >>> > | 4 | 25-34 | 0-39g/day |      30+ |   0.00 |      5.00 |
>>> >>> > | 5 | 25-34 | 40-79     | 0-9g/day |   0.00 |     27.00 |
>>> >>> > | 6 | 25-34 | 40-79     |    10-19 |   0.00 |      7.00 |
>>> >>> >
>>> >>> > Everything is then OK.
>>> >>> > I have no idea why "library(ascii)..." generates an extra empty
>>> line in
>>> >>> the
>>> >>> > results.
>>> >>> >
>>> >>> > If I understand, the results is all the text directly under
>>> "#+results:",
>>> >>> > until the first empty line. But what happens if the result contains
>>> empty
>>> >>> > lines? Here an example with ascii and Hmisc package:
>>> >>> >
>>> >>>
>>> >>> This is not quite right, see [2] for a discussion of results
>>> handling.
>>> >>> The "org" option to results is a special case in which no
>>> >>> post-processing of the results takes place, and the raw output is
>>> >>> inserted into the org-mode buffer.
>>> >>>
>>> >>> Under normal usage w/o this header argument, results are either
>>> tabular
>>> >>> or are textual.  If tabular a single table can easily be recognized
>>> and
>>> >>> handled, if textual they are normally enclosed in a block (example,
>>> >>> html, latex, etc...), the block then allows for empty lines while
>>> still
>>> >>> making it clear where the results end.
>>> >>>
>>> >>
>>> >>
>>> >>>
>>> >>> >
>>> >>> >> library(ascii)
>>> >>> >> library(Hmisc)
>>> >>> >> ascii(describe(esoph[, 1:3]))
>>> >>> > #+CAPTION: esoph[, 1:3]
>>> >>> > - 3 Variable
>>> >>> > - 88 Observations
>>> >>> >
>>> >>> > *agegp*
>>> >>> > | n  | missing | unique |
>>> >>> > | 88 | 0       | 6      |
>>> >>> >
>>> >>> > |           | 25-34 | 35-44 | 45-54 | 55-64 | 65-74 | 75+ |
>>> >>> > | Frequency | 15    | 15    | 16    | 16    | 15    | 11  |
>>> >>> > | %         | 17    | 17    | 18    | 18    | 17    | 12  |
>>> >>> >
>>> >>> > *alcgp*
>>> >>> > | n  | missing | unique |
>>> >>> > | 88 | 0       | 4      |
>>> >>> >
>>> >>> >  0-39g/day (23, 26%), 40-79 (23, 26%), 80-119 (21, 24%), 120+ (21,
>>> 24%)
>>> >>> >
>>> >>> > *tobgp*
>>> >>> > | n  | missing | unique |
>>> >>> > | 88 | 0       | 4      |
>>> >>> >
>>> >>> >  0-9g/day (24, 27%), 10-19 (24, 27%), 20-29 (20, 23%), 30+ (20,
>>> 23%)
>>> >>> >
>>> >>> > As you can see, describe() generate a description of my data, and
>>> ascii
>>> >>> > generate org-mode markup as result. The result contains empty rows.
>>> Since
>>> >>> > there is no special characters indicating the end of the results in
>>> >>> babel,
>>> >>> > replace option will not work in this case. Is there any workaround?
>>> >>> >
>>> >>>
>>> >>> When using ":results org" there is no workaround, as the explicit
>>> >>> purpose of this setting is for your results to be inserted directly
>>> into
>>> >>> the Org-mode buffer w/o any interpretation or alteration.
>>> >>>
>>> >>
>>> >>
>>> >>>
>>> >>> In general I would recommend keeping a 1-to-1 mapping between code
>>> >>> blocks and result items, which should resolve this issue.
>>> >>>
>>> >>> >
>>> >>> > Of course, ascii is not usefull in this case, but it can coerce
>>> into
>>> >>> > org-mode markup many other R objects (see my previous example and
>>> >>> > http://orgmode.org/worg/org-contrib/babel/examples/ascii.php)
>>> >>> >
>>> >>>
>>> >>> I see, that answers my question from above. Thanks
>>> >>>
>>> >>> Hope this helps -- Eric
>>> >>>
>>> >>> >
>>> >>> > David
>>> >>> >
>>> >>> >
>>> >>> > On Tue, Aug 17, 2010 at 15:57, Eric Schulte <
>>> schulte.eric@gmail.com>
>>> >>> wrote:
>>> >>> >
>>> >>> >> Hi David,
>>> >>> >>
>>> >>> >> It seems that the problem here is in the ascii package.  It is
>>> inserting
>>> >>> >> an empty line at the beginning of your table, so that the table is
>>> not
>>> >>> >> snugly sitting under the #+results foo tag, because of this the
>>> table
>>> >>> >> isn't seen as results and is not replaced -- if you delete that
>>> space
>>> >>> >> then re-run the code block you'll notice that the table is
>>> replaced.
>>> >>> >>
>>> >>> >> Org-mode is very capable of inserting tabular data into Org-mode
>>> >>> >> documents without using the ascii package.  For example the
>>> following
>>> >>> >> would be a more idiomatic example of using Org-mode to create a
>>> table
>>> >>> >> from R code.
>>> >>> >>
>>> >>> >> --8<---------------cut here---------------start------------->8---
>>> >>> >> #+begin_src R
>>> >>> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>>> >>> >>  numbers
>>> >>> >> #+end_src
>>> >>> >>
>>> >>> >> #+results:
>>> >>> >> | 51 | 43 | 22 |
>>> >>> >> | 92 | 28 | 21 |
>>> >>> >> | 68 | 22 |  9 |
>>> >>> >>
>>> >>> >> #+begin_src R :colnames yes
>>> >>> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>>> >>> >>  numbers
>>> >>> >> #+end_src
>>> >>> >>
>>> >>> >> #+results:
>>> >>> >> | V1 | V2 | V3 |
>>> >>> >> |----+----+----|
>>> >>> >> | 51 | 43 | 22 |
>>> >>> >> | 92 | 28 | 21 |
>>> >>> >> | 68 | 22 |  9 |
>>> >>> >> --8<---------------cut here---------------end--------------->8---
>>> >>> >>
>>> >>> >> or applied to your example, the following code block should
>>> generate the
>>> >>> >> desired results.
>>> >>> >>
>>> >>> >> --8<---------------cut here---------------start------------->8---
>>> >>> >> #+srcname: foo
>>> >>> >> #+begin_src R :session *R*
>>> >>> >>   head(esoph)
>>> >>> >> #+end_src
>>> >>> >> --8<---------------cut here---------------end--------------->8---
>>> >>> >>
>>> >>> >> One last small note: the "replace" argument to :results is
>>> normally the
>>> >>> >> default value, and doesn't need to be explicitly added (although I
>>> can
>>> >>> >> see why you would have added it in this case since it wasn't
>>> working as
>>> >>> >> expected).
>>> >>> >>
>>> >>> >> Cheers -- Eric
>>> >>> >>
>>> >>> >> David Hajage <dhajage@gmail.com> writes:
>>> >>> >>
>>> >>> >> > I tried the code with the last development version of org-mode:
>>> >>> >> >
>>> >>> >> > #+srcname: foo
>>> >>> >> > #+begin_src R :session *R* :results output org replace
>>> >>> >> >   library(ascii)
>>> >>> >> >   options(asciiType = "org")
>>> >>> >> >   ascii(head(esoph))
>>> >>> >> > #+end_src
>>> >>> >> >
>>> >>> >> > #+results: foo
>>> >>> >> >
>>> >>> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>> >>> >> > |---+-------+-----------+----------+--------+-----------|
>>> >>> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>> >>> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>> >>> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>> >>> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>> >>> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>> >>> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>> >>> >> >
>>> >>> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>> >>> >> > |---+-------+-----------+----------+--------+-----------|
>>> >>> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>> >>> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>> >>> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>> >>> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>> >>> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>> >>> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>> >>> >> >
>>> >>> >> > There is no more ">", but an extra space.
>>> >>> >> > But, the replace option doesn't work: results are still
>>> appended. I am
>>> >>> >> not
>>> >>> >> > an org-mode guru (far, far away), but I think this is because
>>> when
>>> >>> output
>>> >>> >> is
>>> >>> >> > org, there is no indication about the "end" of the results.
>>> >>> >> >
>>> >>> >> > David
>>> >>> >> >
>>> >>> >> >
>>> >>> >> > On Tue, Aug 17, 2010 at 10:17, David Hajage <dhajage@gmail.com>
>>> >>> wrote:
>>> >>> >> >
>>> >>> >> >> Hello,
>>> >>> >> >>
>>> >>> >> >> I am trying to use babel with R. Here the code:
>>> >>> >> >>
>>> >>> >> >> #+srcname: foo
>>> >>> >> >> #+begin_src R :session *R* :results output org replace
>>> >>> >> >>   library(ascii)
>>> >>> >> >>   options(asciiType = "org")
>>> >>> >> >>   ascii(head(esoph))
>>> >>> >> >> #+end_src
>>> >>> >> >>
>>> >>> >> >> #+results: foo
>>> >>> >> >>
>>> >>> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>> >>> >> >> |---+-------+-----------+----------+--------+-----------|
>>> >>> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>> >>> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>> >>> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>> >>> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>> >>> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>> >>> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>> >>> >> >>
>>> >>> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>> >>> >> >> |---+-------+-----------+----------+--------+-----------|
>>> >>> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>> >>> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>> >>> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>> >>> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>> >>> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>> >>> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>> >>> >> >>
>>> >>> >> >> With org-mode 7.01g in emacs 23, there is two problems:
>>> >>> >> >>  - an extra ">" is added in the first line while output is
>>> "org"
>>> >>> >> >>  - when I run the code twice, the new results is appended,
>>> while I
>>> >>> have
>>> >>> >> the
>>> >>> >> >> option "replace".
>>> >>> >> >>
>>> >>> >> >> Is there any problem with my header?
>>> >>> >> >>
>>> >>> >> >> Thank you very much for your help.
>>> >>> >> >> David
>>> >>> >> >>
>>> >>> >> > _______________________________________________
>>> >>> >> > Emacs-orgmode mailing list
>>> >>> >> > Please use `Reply All' to send replies to the list.
>>> >>> >> > Emacs-orgmode@gnu.org
>>> >>> >> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>> >>> >>
>>> >>>
>>> >>> Footnotes:
>>> >>> [1]
>>> http://orgmode.org/manual/Header-arguments.html#Header-arguments
>>> >>>
>>> >>> [2]
>>> >>>
>>> http://orgmode.org/manual/Results-of-evaluation.html#Results-of-evaluation
>>> >>>
>>> >>>
>>> >>> L'intégrité de ce message n'étant pas assurée sur Internet,
>>> l'Institut
>>> >>> Curie ne peut être tenu responsable de son contenu.
>>> >>> Si vous n'êtes pas destinataire de ce message confidentiel, merci de
>>> le
>>> >>> détruire et d'avertir immédiatement l'expéditeur.
>>> >>> Afin de contribuer au respect de l'environnement, merci de n'imprimer
>>> ce
>>> >>> mail qu'en cas de nécessité.
>>> >>>
>>>
>>> Footnotes:
>>> [1]
>>> ,----[org-babel-insert-result]
>>> | org-babel-insert-result is a Lisp function in `ob.el'.
>>> |
>>> | (org-babel-insert-result RESULT &optional RESULT-PARAMS INFO HASH
>>> | INDENT LANG)
>>> |
>>> | Insert RESULT into the current buffer.
>>> | By default RESULT is inserted after the end of the
>>> | current source block.  With optional argument RESULT-PARAMS
>>> | controls insertion of results in the org-mode file.
>>> | RESULT-PARAMS can take the following values...
>>> |
>>> | replace - (default option) insert results after the source block
>>> |           replacing any previously inserted results
>>> |
>>> | silent -- no results are inserted
>>> |
>>> | file ---- the results are interpreted as a file path, and are
>>> |           inserted into the buffer using the Org-mode file syntax
>>> |
>>> | raw ----- results are added directly to the org-mode file.  This
>>> |           is a good option if you code block will output org-mode
>>> |           formatted text.
>>> |
>>> | org ----- this is the same as the 'raw' option
>>> |
>>> | html ---- results are added inside of a #+BEGIN_HTML block.  This
>>> |           is a good option if you code block will output html
>>> |           formatted text.
>>> |
>>> | latex --- results are added inside of a #+BEGIN_LATEX block.
>>> |           This is a good option if you code block will output
>>> |           latex formatted text.
>>> |
>>> | code ---- the results are extracted in the syntax of the source
>>> |           code of the language being evaluated and are added
>>> |           inside of a #+BEGIN_SRC block with the source-code
>>> |           language set appropriately.  Note this relies on the
>>> |           optional LANG argument.
>>> |
>>> | [back]
>>> `----
>>>
>>> [2]
>>> ,----
>>> | ob-org has two non-standard header arguments in that it exports it's
>>> | results by default and the result type defaults to raw, this ensures
>>> | that the body of a begin_src org block exports transparently.
>>> |
>>> | This is a breaking change in that if you are currently using org
>>> | code blocks to export org-fontified code you will have to set the
>>> | ":exports" header argument for org-mode blocks to "code" on a block,
>>> | file, language or system-wide basis.
>>> `----
>>>
>>
>>
>

[-- Attachment #1.2: Type: text/html, Size: 27208 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Re: problem with babel and R
  2010-08-26 22:06                   ` David Hajage
@ 2010-08-26 23:37                     ` Eric Schulte
  0 siblings, 0 replies; 13+ messages in thread
From: Eric Schulte @ 2010-08-26 23:37 UTC (permalink / raw)
  To: David Hajage; +Cc: emacs-orgmode

Oh no!

It appears this solution may have been too clever for it's own good.

Thanks for suggesting ":results silent" as an additional default header
argument, that appears to fixed this weird behavior.

I've just pushed up that fix.

Cheers -- Eric

David Hajage <dhajage@gmail.com> writes:

> One comment:
>
> When I execute all the buffer (org-babel-execute-buffer), the result is:
>
> #+begin_src R :results output org :exports both
> library(ascii)
> options(asciiType = "org")
> ascii(head(esoph, 3))
> #+end_src
>
> #+results:
> #+BEGIN_SRC org
> |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
> |---+-------+-----------+----------+--------+-----------|
> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
> #+END_SRC
>
> #+results:
> |   | agegp | alcgp     |    tobgp | ncases | ncontrols |
> |---+-------+-----------+----------+--------+-----------|
> | 1 | 25-34 | 0-39g/day | 0-9g/day |   0.00 |     40.00 |
> | 2 | 25-34 | 0-39g/day |    10-19 |   0.00 |     10.00 |
> | 3 | 25-34 | 0-39g/day |    20-29 |   0.00 |      6.00 |
>
> Then, the results is repeated twice in the buffer. I understand why, but
> perhaps the "silent" option should be turned on by default for org code
> blocks?
>
> David
>
>
> On Thu, Aug 26, 2010 at 23:51, David Hajage <dhajage@gmail.com> wrote:
>
>> Oups, I forgot ob-org in my .emacs... OK, now, really sorry for this.
>> David
>>
>>
>>
>> On Thu, Aug 26, 2010 at 22:20, David Hajage <dhajage@gmail.com> wrote:
>>
>>> I am so sorry to bother you again, but I must miss something.
>>>
>>> When I write:
>>>
>>> #+begin_src R :results output org :exports both
>>> library(ascii)
>>> options(asciiType = "org")
>>> ascii(head(esoph))
>>> #+end_src
>>>
>>> The results is:
>>>
>>> #+results:
>>> #+BEGIN_SRC org
>>> |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>> |---+-------+-----------+----------+--------+-----------|
>>> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>> #+END_SRC
>>>
>>> OK, the result is surrounded by BEGIN_SRC org/END_SRC. But when I export
>>> this, the results is exported as fontified org code. What should I do to
>>> have this result interpreted as org markup?
>>> David
>>>
>>>
>>>
>>> On Thu, Aug 26, 2010 at 18:10, Eric Schulte <schulte.eric@gmail.com>wrote:
>>>
>>>> Hi,
>>>>
>>>> A fix to this issue has been pushed up to the repository.  As can now be
>>>> read in the documentation of the `org-babel-insert-result' function [1],
>>>> there is now a subtle distinction between ":results org" and ":results
>>>> raw", where ":results org" will wrap code block results in a "begin_src
>>>> org" block.  The block wrapper makes it possible for the entirety of the
>>>> results to be located and removed by Babel upon code block
>>>> re-evaluation.
>>>>
>>>> In addition a new ob-org.el file has been added providing support for
>>>> evaluation of Org-mode blocks.  With this new language support loaded
>>>> the above technique becomes a working replacement for ":results raw"
>>>> allowing the body of the org code block to be interpreted as inline
>>>> org-mode text on export.  This is done through some non-standard default
>>>> header arguments described in the recent commit message (see [2])
>>>>
>>>> Best -- Eric
>>>>
>>>> "Eric Schulte" <schulte.eric@gmail.com> writes:
>>>>
>>>> > Hi David,
>>>> >
>>>> > "#+end_results: foo" (or some derivative syntax) sounds like a good
>>>> > idea, I'll add it to the Babel task list.
>>>> >
>>>> > Thanks -- Eric
>>>> >
>>>> > David Hajage <dhajage@gmail.com> writes:
>>>> >
>>>> >> OK, I understand that using ":results org", the results is not
>>>> altered,
>>>> >> there is no post processing. But I don't want a post processing, I
>>>> would
>>>> >> like a way to tell babel where is the begining *and the end* of the
>>>> output
>>>> >> produces by a particular R source block. I think an "#+end_results:
>>>> foo" at
>>>> >> the end of the output could do the job. Then, the option "replace"
>>>> could
>>>> >> work in all situation, even if a blank line is inserted somewhere in
>>>> the org
>>>> >> output. No?
>>>> >> David
>>>> >>
>>>> >>
>>>> >> On Tue, Aug 17, 2010 at 17:15, Eric Schulte <schulte.eric@gmail.com>
>>>> wrote:
>>>> >>
>>>> >>> Hi David,
>>>> >>>
>>>> >>> David Hajage <dhajage@gmail.com> writes:
>>>> >>>
>>>> >>> > Thank you very much for your answer.
>>>> >>> >
>>>> >>>
>>>> >>> My pleasure
>>>> >>>
>>>> >>> >
>>>> >>> > But when I run the following code directly into R, no extra lines
>>>> is
>>>> >>> >added
>>>> >>> > by the ascii function:
>>>> >>> >> library(ascii)
>>>> >>> > Le chargement a nécessité le package : proto
>>>> >>> >> options(asciiType = "org")
>>>> >>> >> ascii(head(esoph)) # no extra line
>>>> >>> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>>> >>> > |---+-------+-----------+----------+--------+-----------|
>>>> >>> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>>> >>> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>>> >>> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>>> >>> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>>> >>> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>>> >>> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>>> >>> >
>>>> >>>
>>>> >>> ah, my fault, this isn't an ascii issue.
>>>> >>>
>>>> >>> >
>>>> >>> > In fact, the solution was to run 'library(ascii)' in another source
>>>> >>> block.
>>>> >>> > When I run only this:
>>>> >>> >
>>>> >>>
>>>> >>> Thanks for pointing this out, I see what's happening now.
>>>> >>>
>>>> >>> The :results output header argument (see [1] for information on
>>>> header
>>>> >>> arguments) informs Org-mode to collect all of the output of the
>>>> source
>>>> >>> code block.  This means that when library(ascii) is run, an empty
>>>> line
>>>> >>> is collected and appended to the output.  Removing the "output"
>>>> header
>>>> >>> argument should fix this issue.
>>>> >>>
>>>> >>> My I ask why you are using the ascii package for simple table output?
>>>> >>> It seems to me that this would be much simpler using the pure
>>>> Org-mode
>>>> >>> solution I suggested in my previous email.
>>>> >>>
>>>> >>> >
>>>> >>> > #+begin_src R :session *R* :results output org replace
>>>> >>> >   ascii(head(esoph))
>>>> >>> > #+end_src
>>>> >>> >
>>>> >>> > #+results: foo
>>>> >>> > |   | agegp | alcgp     |    tobgp | ncases | ncontrols |
>>>> >>> > |---+-------+-----------+----------+--------+-----------|
>>>> >>> > | 1 | 25-34 | 0-39g/day | 0-9g/day |   0.00 |     40.00 |
>>>> >>> > | 2 | 25-34 | 0-39g/day |    10-19 |   0.00 |     10.00 |
>>>> >>> > | 3 | 25-34 | 0-39g/day |    20-29 |   0.00 |      6.00 |
>>>> >>> > | 4 | 25-34 | 0-39g/day |      30+ |   0.00 |      5.00 |
>>>> >>> > | 5 | 25-34 | 40-79     | 0-9g/day |   0.00 |     27.00 |
>>>> >>> > | 6 | 25-34 | 40-79     |    10-19 |   0.00 |      7.00 |
>>>> >>> >
>>>> >>> > Everything is then OK.
>>>> >>> > I have no idea why "library(ascii)..." generates an extra empty
>>>> line in
>>>> >>> the
>>>> >>> > results.
>>>> >>> >
>>>> >>> > If I understand, the results is all the text directly under
>>>> "#+results:",
>>>> >>> > until the first empty line. But what happens if the result contains
>>>> empty
>>>> >>> > lines? Here an example with ascii and Hmisc package:
>>>> >>> >
>>>> >>>
>>>> >>> This is not quite right, see [2] for a discussion of results
>>>> handling.
>>>> >>> The "org" option to results is a special case in which no
>>>> >>> post-processing of the results takes place, and the raw output is
>>>> >>> inserted into the org-mode buffer.
>>>> >>>
>>>> >>> Under normal usage w/o this header argument, results are either
>>>> tabular
>>>> >>> or are textual.  If tabular a single table can easily be recognized
>>>> and
>>>> >>> handled, if textual they are normally enclosed in a block (example,
>>>> >>> html, latex, etc...), the block then allows for empty lines while
>>>> still
>>>> >>> making it clear where the results end.
>>>> >>>
>>>> >>
>>>> >>
>>>> >>>
>>>> >>> >
>>>> >>> >> library(ascii)
>>>> >>> >> library(Hmisc)
>>>> >>> >> ascii(describe(esoph[, 1:3]))
>>>> >>> > #+CAPTION: esoph[, 1:3]
>>>> >>> > - 3 Variable
>>>> >>> > - 88 Observations
>>>> >>> >
>>>> >>> > *agegp*
>>>> >>> > | n  | missing | unique |
>>>> >>> > | 88 | 0       | 6      |
>>>> >>> >
>>>> >>> > |           | 25-34 | 35-44 | 45-54 | 55-64 | 65-74 | 75+ |
>>>> >>> > | Frequency | 15    | 15    | 16    | 16    | 15    | 11  |
>>>> >>> > | %         | 17    | 17    | 18    | 18    | 17    | 12  |
>>>> >>> >
>>>> >>> > *alcgp*
>>>> >>> > | n  | missing | unique |
>>>> >>> > | 88 | 0       | 4      |
>>>> >>> >
>>>> >>> >  0-39g/day (23, 26%), 40-79 (23, 26%), 80-119 (21, 24%), 120+ (21,
>>>> 24%)
>>>> >>> >
>>>> >>> > *tobgp*
>>>> >>> > | n  | missing | unique |
>>>> >>> > | 88 | 0       | 4      |
>>>> >>> >
>>>> >>> >  0-9g/day (24, 27%), 10-19 (24, 27%), 20-29 (20, 23%), 30+ (20,
>>>> 23%)
>>>> >>> >
>>>> >>> > As you can see, describe() generate a description of my data, and
>>>> ascii
>>>> >>> > generate org-mode markup as result. The result contains empty rows.
>>>> Since
>>>> >>> > there is no special characters indicating the end of the results in
>>>> >>> babel,
>>>> >>> > replace option will not work in this case. Is there any workaround?
>>>> >>> >
>>>> >>>
>>>> >>> When using ":results org" there is no workaround, as the explicit
>>>> >>> purpose of this setting is for your results to be inserted directly
>>>> into
>>>> >>> the Org-mode buffer w/o any interpretation or alteration.
>>>> >>>
>>>> >>
>>>> >>
>>>> >>>
>>>> >>> In general I would recommend keeping a 1-to-1 mapping between code
>>>> >>> blocks and result items, which should resolve this issue.
>>>> >>>
>>>> >>> >
>>>> >>> > Of course, ascii is not usefull in this case, but it can coerce
>>>> into
>>>> >>> > org-mode markup many other R objects (see my previous example and
>>>> >>> > http://orgmode.org/worg/org-contrib/babel/examples/ascii.php)
>>>> >>> >
>>>> >>>
>>>> >>> I see, that answers my question from above. Thanks
>>>> >>>
>>>> >>> Hope this helps -- Eric
>>>> >>>
>>>> >>> >
>>>> >>> > David
>>>> >>> >
>>>> >>> >
>>>> >>> > On Tue, Aug 17, 2010 at 15:57, Eric Schulte <
>>>> schulte.eric@gmail.com>
>>>> >>> wrote:
>>>> >>> >
>>>> >>> >> Hi David,
>>>> >>> >>
>>>> >>> >> It seems that the problem here is in the ascii package.  It is
>>>> inserting
>>>> >>> >> an empty line at the beginning of your table, so that the table is
>>>> not
>>>> >>> >> snugly sitting under the #+results foo tag, because of this the
>>>> table
>>>> >>> >> isn't seen as results and is not replaced -- if you delete that
>>>> space
>>>> >>> >> then re-run the code block you'll notice that the table is
>>>> replaced.
>>>> >>> >>
>>>> >>> >> Org-mode is very capable of inserting tabular data into Org-mode
>>>> >>> >> documents without using the ascii package.  For example the
>>>> following
>>>> >>> >> would be a more idiomatic example of using Org-mode to create a
>>>> table
>>>> >>> >> from R code.
>>>> >>> >>
>>>> >>> >> --8<---------------cut here---------------start------------->8---
>>>> >>> >> #+begin_src R
>>>> >>> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>>>> >>> >>  numbers
>>>> >>> >> #+end_src
>>>> >>> >>
>>>> >>> >> #+results:
>>>> >>> >> | 51 | 43 | 22 |
>>>> >>> >> | 92 | 28 | 21 |
>>>> >>> >> | 68 | 22 |  9 |
>>>> >>> >>
>>>> >>> >> #+begin_src R :colnames yes
>>>> >>> >>  numbers <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
>>>> >>> >>  numbers
>>>> >>> >> #+end_src
>>>> >>> >>
>>>> >>> >> #+results:
>>>> >>> >> | V1 | V2 | V3 |
>>>> >>> >> |----+----+----|
>>>> >>> >> | 51 | 43 | 22 |
>>>> >>> >> | 92 | 28 | 21 |
>>>> >>> >> | 68 | 22 |  9 |
>>>> >>> >> --8<---------------cut here---------------end--------------->8---
>>>> >>> >>
>>>> >>> >> or applied to your example, the following code block should
>>>> generate the
>>>> >>> >> desired results.
>>>> >>> >>
>>>> >>> >> --8<---------------cut here---------------start------------->8---
>>>> >>> >> #+srcname: foo
>>>> >>> >> #+begin_src R :session *R*
>>>> >>> >>   head(esoph)
>>>> >>> >> #+end_src
>>>> >>> >> --8<---------------cut here---------------end--------------->8---
>>>> >>> >>
>>>> >>> >> One last small note: the "replace" argument to :results is
>>>> normally the
>>>> >>> >> default value, and doesn't need to be explicitly added (although I
>>>> can
>>>> >>> >> see why you would have added it in this case since it wasn't
>>>> working as
>>>> >>> >> expected).
>>>> >>> >>
>>>> >>> >> Cheers -- Eric
>>>> >>> >>
>>>> >>> >> David Hajage <dhajage@gmail.com> writes:
>>>> >>> >>
>>>> >>> >> > I tried the code with the last development version of org-mode:
>>>> >>> >> >
>>>> >>> >> > #+srcname: foo
>>>> >>> >> > #+begin_src R :session *R* :results output org replace
>>>> >>> >> >   library(ascii)
>>>> >>> >> >   options(asciiType = "org")
>>>> >>> >> >   ascii(head(esoph))
>>>> >>> >> > #+end_src
>>>> >>> >> >
>>>> >>> >> > #+results: foo
>>>> >>> >> >
>>>> >>> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>>> >>> >> > |---+-------+-----------+----------+--------+-----------|
>>>> >>> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>>> >>> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>>> >>> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>>> >>> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>>> >>> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>>> >>> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>>> >>> >> >
>>>> >>> >> >  |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>>> >>> >> > |---+-------+-----------+----------+--------+-----------|
>>>> >>> >> > | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>>> >>> >> > | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>>> >>> >> > | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>>> >>> >> > | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>>> >>> >> > | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>>> >>> >> > | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>>> >>> >> >
>>>> >>> >> > There is no more ">", but an extra space.
>>>> >>> >> > But, the replace option doesn't work: results are still
>>>> appended. I am
>>>> >>> >> not
>>>> >>> >> > an org-mode guru (far, far away), but I think this is because
>>>> when
>>>> >>> output
>>>> >>> >> is
>>>> >>> >> > org, there is no indication about the "end" of the results.
>>>> >>> >> >
>>>> >>> >> > David
>>>> >>> >> >
>>>> >>> >> >
>>>> >>> >> > On Tue, Aug 17, 2010 at 10:17, David Hajage <dhajage@gmail.com>
>>>> >>> wrote:
>>>> >>> >> >
>>>> >>> >> >> Hello,
>>>> >>> >> >>
>>>> >>> >> >> I am trying to use babel with R. Here the code:
>>>> >>> >> >>
>>>> >>> >> >> #+srcname: foo
>>>> >>> >> >> #+begin_src R :session *R* :results output org replace
>>>> >>> >> >>   library(ascii)
>>>> >>> >> >>   options(asciiType = "org")
>>>> >>> >> >>   ascii(head(esoph))
>>>> >>> >> >> #+end_src
>>>> >>> >> >>
>>>> >>> >> >> #+results: foo
>>>> >>> >> >>
>>>> >>> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>>> >>> >> >> |---+-------+-----------+----------+--------+-----------|
>>>> >>> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>>> >>> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>>> >>> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>>> >>> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>>> >>> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>>> >>> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>>> >>> >> >>
>>>> >>> >> >> > |   | agegp | alcgp     | tobgp    | ncases | ncontrols |
>>>> >>> >> >> |---+-------+-----------+----------+--------+-----------|
>>>> >>> >> >> | 1 | 25-34 | 0-39g/day | 0-9g/day | 0.00   | 40.00     |
>>>> >>> >> >> | 2 | 25-34 | 0-39g/day | 10-19    | 0.00   | 10.00     |
>>>> >>> >> >> | 3 | 25-34 | 0-39g/day | 20-29    | 0.00   | 6.00      |
>>>> >>> >> >> | 4 | 25-34 | 0-39g/day | 30+      | 0.00   | 5.00      |
>>>> >>> >> >> | 5 | 25-34 | 40-79     | 0-9g/day | 0.00   | 27.00     |
>>>> >>> >> >> | 6 | 25-34 | 40-79     | 10-19    | 0.00   | 7.00      |
>>>> >>> >> >>
>>>> >>> >> >> With org-mode 7.01g in emacs 23, there is two problems:
>>>> >>> >> >>  - an extra ">" is added in the first line while output is
>>>> "org"
>>>> >>> >> >>  - when I run the code twice, the new results is appended,
>>>> while I
>>>> >>> have
>>>> >>> >> the
>>>> >>> >> >> option "replace".
>>>> >>> >> >>
>>>> >>> >> >> Is there any problem with my header?
>>>> >>> >> >>
>>>> >>> >> >> Thank you very much for your help.
>>>> >>> >> >> David
>>>> >>> >> >>
>>>> >>> >> > _______________________________________________
>>>> >>> >> > Emacs-orgmode mailing list
>>>> >>> >> > Please use `Reply All' to send replies to the list.
>>>> >>> >> > Emacs-orgmode@gnu.org
>>>> >>> >> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>> >>> >>
>>>> >>>
>>>> >>> Footnotes:
>>>> >>> [1]
>>>> http://orgmode.org/manual/Header-arguments.html#Header-arguments
>>>> >>>
>>>> >>> [2]
>>>> >>>
>>>> http://orgmode.org/manual/Results-of-evaluation.html#Results-of-evaluation
>>>> >>>
>>>> >>>
>>>> >>> L'intégrité de ce message n'étant pas assurée sur Internet,
>>>> l'Institut
>>>> >>> Curie ne peut être tenu responsable de son contenu.
>>>> >>> Si vous n'êtes pas destinataire de ce message confidentiel, merci de
>>>> le
>>>> >>> détruire et d'avertir immédiatement l'expéditeur.
>>>> >>> Afin de contribuer au respect de l'environnement, merci de n'imprimer
>>>> ce
>>>> >>> mail qu'en cas de nécessité.
>>>> >>>
>>>>
>>>> Footnotes:
>>>> [1]
>>>> ,----[org-babel-insert-result]
>>>> | org-babel-insert-result is a Lisp function in `ob.el'.
>>>> |
>>>> | (org-babel-insert-result RESULT &optional RESULT-PARAMS INFO HASH
>>>> | INDENT LANG)
>>>> |
>>>> | Insert RESULT into the current buffer.
>>>> | By default RESULT is inserted after the end of the
>>>> | current source block.  With optional argument RESULT-PARAMS
>>>> | controls insertion of results in the org-mode file.
>>>> | RESULT-PARAMS can take the following values...
>>>> |
>>>> | replace - (default option) insert results after the source block
>>>> |           replacing any previously inserted results
>>>> |
>>>> | silent -- no results are inserted
>>>> |
>>>> | file ---- the results are interpreted as a file path, and are
>>>> |           inserted into the buffer using the Org-mode file syntax
>>>> |
>>>> | raw ----- results are added directly to the org-mode file.  This
>>>> |           is a good option if you code block will output org-mode
>>>> |           formatted text.
>>>> |
>>>> | org ----- this is the same as the 'raw' option
>>>> |
>>>> | html ---- results are added inside of a #+BEGIN_HTML block.  This
>>>> |           is a good option if you code block will output html
>>>> |           formatted text.
>>>> |
>>>> | latex --- results are added inside of a #+BEGIN_LATEX block.
>>>> |           This is a good option if you code block will output
>>>> |           latex formatted text.
>>>> |
>>>> | code ---- the results are extracted in the syntax of the source
>>>> |           code of the language being evaluated and are added
>>>> |           inside of a #+BEGIN_SRC block with the source-code
>>>> |           language set appropriately.  Note this relies on the
>>>> |           optional LANG argument.
>>>> |
>>>> | [back]
>>>> `----
>>>>
>>>> [2]
>>>> ,----
>>>> | ob-org has two non-standard header arguments in that it exports it's
>>>> | results by default and the result type defaults to raw, this ensures
>>>> | that the body of a begin_src org block exports transparently.
>>>> |
>>>> | This is a breaking change in that if you are currently using org
>>>> | code blocks to export org-fontified code you will have to set the
>>>> | ":exports" header argument for org-mode blocks to "code" on a block,
>>>> | file, language or system-wide basis.
>>>> `----
>>>>
>>>
>>>
>>

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2010-08-26 23:38 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-17  8:17 problem with babel and R David Hajage
2010-08-17 12:01 ` David Hajage
2010-08-17 13:57   ` Eric Schulte
2010-08-17 14:41     ` David Hajage
2010-08-17 15:15       ` Eric Schulte
2010-08-17 17:07         ` Tom Short
     [not found]       ` <1668ca$1pq4c@mail.curie.net>
2010-08-18  6:53         ` David Hajage
2010-08-18 22:13           ` Eric Schulte
2010-08-26 16:10             ` Eric Schulte
2010-08-26 20:20               ` David Hajage
2010-08-26 21:51                 ` David Hajage
2010-08-26 22:06                   ` David Hajage
2010-08-26 23:37                     ` Eric Schulte

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).