emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Preventing RESULTS from being formatted as org table [ob-awk]


From: Charles C. Berry
Subject: Re: [O] Preventing RESULTS from being formatted as org table [ob-awk]
Date: Sun, 12 Jun 2016 14:02:08 -0700
User-agent: Alpine 2.20 (OSX 67 2015-01-07)

On Sun, 12 Jun 2016, Thomas S. Dye wrote:

Aloha Kaushal,

Kaushal Modi writes:


[deleted]


So what determines if the results should be table formatted or kept verbatim
(scalar)?
--

I think I'm correct to say that by default a single value result is
output as a scalar, and everything else is converted to an Org mode
table.


TL;DR: That is almost correct. `:post' header arg gives fine control of formatting if needed.

`org-babel-insert-result' formats anything that isn't a string or a list using "%S". Then it tries hard to turn a list into a "table". Lists that cannot be made into tables are formatted as strings with "%s\n". However, various languages have their own formatting principles, so what `org-babel-insert-result' gets as the `result' is a bit idiosyncratic.

You can get a deeper look at the `result' by pretty printing it with the aid of a :post header arg. Example:


#+NAME: I-feel-pretty
#+BEGIN_SRC emacs-lisp :results pp
*this*
#+END_SRC

This elisp list is not revised:

#+BEGIN_SRC emacs-lisp :post I-feel-pretty
'(a b c (d . e))
#+END_SRC

#+RESULTS:
: (a b c
:    (d . e))


But R turns its list into an R data.frame and then into a elisp list with an element for each row:

#+BEGIN_SRC R :post I-feel-pretty
list(a="a",b="b", c="c", d=c("d", "e"))
#+END_SRC

#+RESULTS:
: (("a" "b" "c" "d")
:  ("a" "b" "c" "e"))

HTH,

Chuck



reply via email to

[Prev in Thread] Current Thread [Next in Thread]