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