"Eric Schulte" <
address@hidden> 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 <
address@hidden> 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 <
address@hidden> wrote:
>>
>>> Hi David,
>>>
>>> David Hajage <
address@hidden> 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 <
address@hidden>
>>> 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 <
address@hidden> 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 <
address@hidden>
>>> 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.
>>> >> >
address@hidden
>>> >> >
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é.
>>>