On Fri, 29 May 2015, Nicolas Goaziou wrote:
Titus von der Malsburg <malsb...@posteo.de> writes:
On 2015-05-24 Sun 10:09, Thomas S. Dye wrote:
Titus von der Malsburg <malsb...@posteo.de> writes:
On 2015-05-24 Sun 08:36, Thomas S. Dye wrote:
Titus von der Malsburg <malsb...@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.
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