Re: [Orgmode] Re: problem with babel and R
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.e...@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 dhaj...@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.e...@gmail.com wrote: Hi David, David Hajage dhaj...@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 | | % |
Re: [Orgmode] Re: problem with babel and R
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.e...@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.e...@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 dhaj...@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.e...@gmail.com wrote: Hi David, David Hajage dhaj...@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
Re: [Orgmode] Re: problem with babel and R
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 dhaj...@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.e...@gmail.comwrote: 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.e...@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 dhaj...@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.e...@gmail.com wrote: Hi David, David Hajage dhaj...@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
Re: [Orgmode] Re: problem with babel and R
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 dhaj...@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 dhaj...@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.e...@gmail.comwrote: 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.e...@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 dhaj...@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.e...@gmail.com wrote: Hi David, David Hajage dhaj...@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
Re: [Orgmode] Re: problem with babel and R
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 dhaj...@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 dhaj...@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 dhaj...@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.e...@gmail.comwrote: 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.e...@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 dhaj...@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.e...@gmail.com wrote: Hi David, David Hajage dhaj...@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
Re: [Orgmode] Re: problem with babel and R
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.e...@gmail.com wrote: Hi David, David Hajage dhaj...@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
Re: [Orgmode] Re: problem with babel and R
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 dhaj...@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.e...@gmail.com wrote: Hi David, David Hajage dhaj...@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
Re: [Orgmode] Re: problem with babel and R
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 dhaj...@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 dhaj...@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 ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list.
Re: [Orgmode] Re: problem with babel and R
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 alcgptobgp ncases ncontrols 1 25-34 0-39g/day 0-9g/day 040 2 25-34 0-39g/day10-19 010 3 25-34 0-39g/day20-29 0 6 4 25-34 0-39g/day 30+ 0 5 5 25-34 40-79 0-9g/day 027 6 25-34 40-7910-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.e...@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
Re: [Orgmode] Re: problem with babel and R
Hi David, David Hajage dhaj...@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.e...@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