From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Charles C. Berry" 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:09:42 -0700 Message-ID: References: <87y4kefvo9.fsf@posteo.de> <87wpzyfn46.fsf@posteo.de> <87vbfieywt.fsf@posteo.de> <87twv1g8ao.fsf@posteo.de> <87r3pz2084.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-1886220721-1432922982=:449" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45899) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YyOjA-0006eY-Dd for emacs-orgmode@gnu.org; Fri, 29 May 2015 14:09:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YyOj5-0008OT-DZ for emacs-orgmode@gnu.org; Fri, 29 May 2015 14:09:52 -0400 Received: from iport-acv5-out.ucsd.edu ([132.239.0.10]:58792) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YyOj5-0008Ns-0J for emacs-orgmode@gnu.org; Fri, 29 May 2015 14:09:47 -0400 In-Reply-To: <87r3pz2084.fsf@nicolasgoaziou.fr> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Nicolas Goaziou Cc: emacs-orgmode@gnu.org, Titus von der Malsburg , "Thomas S. Dye" This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-1886220721-1432922982=:449 Content-Type: TEXT/PLAIN; charset=utf-8; format=flowed Content-Transfer-Encoding: 8BIT On Fri, 29 May 2015, Nicolas Goaziou wrote: > Titus von der Malsburg writes: > >> On 2015-05-24 Sun 10:09, Thomas S. Dye wrote: >>> Titus von der Malsburg writes: >>> >>>> On 2015-05-24 Sun 08:36, Thomas S. Dye wrote: >>>>> Titus von der Malsburg 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. 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. Chuck --0-1886220721-1432922982=:449--