emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Titus von der Malsburg <malsburg@posteo.de>
To: "Charles C. Berry" <ccberry@ucsd.edu>
Cc: emacs-orgmode@gnu.org, "Thomas S. Dye" <tsd@tsdye.com>,
	Nicolas Goaziou <mail@nicolasgoaziou.fr>
Subject: Re: Bug: Org export to latex produces incorrect table [8.3beta (release_8.3beta-1157-g8ddb84 @ /home/malsburg/usr/share/emacs/site-lisp/org/)]
Date: Fri, 29 May 2015 11:54:21 -0700	[thread overview]
Message-ID: <87y4k7i59e.fsf@posteo.de> (raw)
In-Reply-To: <alpine.OSX.2.11.1505291033390.449@charles-berrys-macbook.local>

[-- Attachment #1: Type: text/plain, Size: 3096 bytes --]


On 2015-05-29 Fri 11:09, Charles C. Berry wrote:
> On Fri, 29 May 2015, Nicolas Goaziou wrote:
>
>> Titus von der Malsburg <malsburg@posteo.de> writes:
>>
>>> On 2015-05-24 Sun 10:09, Thomas S. Dye wrote:
>>>> Titus von der Malsburg <malsburg@posteo.de> writes:
>>>>
>>>>> On 2015-05-24 Sun 08:36, Thomas S. Dye wrote:
>>>>>> Titus von der Malsburg <malsburg@posteo.de> writes:
>>>>>>
>>>>>>>> You got the result of rownames(x), which is expected.  The table you
>>>>>>>> expect is given by the following code:
>>>>>>>
>>>>>>> Ah, I see, thanks.  Although the results is still somewhat
>>>>>>> unexpected.  c("One:", "Two:") doesn’t have rownames and colnames.  So
>>>>>>> org apparently made them up when generating the table.
>>>>>>
>>>>>> Also expected due to :rownames yes :colnames yes.  Without those two
>>>>>> header arguments:
>>>>>>
>>>>>
>>>>> Consider this example:
>>>>>
>>>>> #+BEGIN_SRC R :results table :exports results :colnames yes :rownames yes
>>>>>   v <- c("a", "b")
>>>>> #+END_SRC
>>>>>
>>>>> #+RESULTS:
>>>>> |   | x |
>>>>> |---+---|
>>>>> | 1 | a |
>>>>> | 2 | b |
>>>>>
>>>>> Where is the “x” coming from?  In R, colnames(v) gives me NULL.
>>>>
>>>> rownames(v) is also NULL.
>>>>
>>>> You are asking Org mode to produce a table with row and column names
>>>> from a vector, which lacks rows and columns.  What behavior do you
>>>> expect?
>>>
>>> Almost anything is better than Org showing me values that do not exist
>>> in the original data.  Empty cells for row and columns names are
>>> probably the best solution because that would be faithful to the data
>>> and to the settings (:rownames yes :colnames yes).
>>
>> AFAICT, the "x" comes from R, not Org. It could also come from the way
>> Org calls R, but I don't know enough of the latter to tell.
>>
>
> In particular, `org-babel-R-write-object-command' contains an R
> function that processes the object for `:results value'. The guts of
> it is a call to write.table(). Here is an example:
>
>
> #+NAME: show write.table
> #+BEGIN_SRC R :results output
>    write.table(c("a","b"))
> #+END_SRC
>
> #+RESULTS: show write.table
> : "x"
> : "1" "a"
> : "2" "b"
>
> The difficulty is that write.table() coerces its first argument to a 
> `data.frame', whence the odd seeming row/column labels.
>
> Making the R code in `org-babel-R-write-object-command' smart enough
> to do what the OP wants without breaking stuff might be possible if 
> anyone wants to do the work.

Thanks for the pointer, Charles.  If this is standard behaviour in R,
I’m actually fine with it.  It just wasn’t clear that write.table is
used for making tables.

I would add a note about this in the documentation but, correct
me if I’m wrong, the whole “:results table“-thing isn’t yet described in
the documentation.  Is that correct?

  Titus

> However, IMO `:results output' is the way to go for such cases. There are 
> plenty of tools in R for formatting output and the user will have better 
> control over what is produced.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 472 bytes --]

  reply	other threads:[~2015-05-29 18:54 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-24  4:26 Bug: Org export to latex produces incorrect table [8.3beta (release_8.3beta-1157-g8ddb84 @ /home/malsburg/usr/share/emacs/site-lisp/org/)] Titus von der Malsburg
2015-05-24  7:01 ` Thomas S. Dye
2015-05-24  7:31   ` Titus von der Malsburg
2015-05-24 15:36     ` Thomas S. Dye
2015-05-24 16:13       ` Titus von der Malsburg
2015-05-24 17:09         ` Thomas S. Dye
2015-05-24 18:05           ` Titus von der Malsburg
2015-05-29  9:37             ` Nicolas Goaziou
2015-05-29 18:00               ` Sebastien Vauban
2015-05-29 18:09               ` Charles C. Berry
2015-05-29 18:54                 ` Titus von der Malsburg [this message]
2015-05-29 19:14                   ` Thomas S. Dye

Reply instructions:

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

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

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

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

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

  git send-email \
    --in-reply-to=87y4k7i59e.fsf@posteo.de \
    --to=malsburg@posteo.de \
    --cc=ccberry@ucsd.edu \
    --cc=emacs-orgmode@gnu.org \
    --cc=mail@nicolasgoaziou.fr \
    --cc=tsd@tsdye.com \
    /path/to/YOUR_REPLY

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

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

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

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