emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* R terminal output does not match src block output due to ">" character in results
@ 2022-01-11 22:42 John Hendy
  2022-01-11 23:30 ` John Hendy
  0 siblings, 1 reply; 6+ messages in thread
From: John Hendy @ 2022-01-11 22:42 UTC (permalink / raw)
  To: emacs-orgmode

I just ran into an issue where results look fine in the terminal, but
not in the results of a source block. I can't share the real example
as it's work confidential, but a couple of rows across 7 columns looks
like this in the terminal:

#+begin_example terminal
dbGetQuery(con, paste0("SELECT TOP 2 * FROM table"))
1       <NA>             NA            NA <NA>         FALSE      0          5
2       <NA>             NA            NA <NA>         FALSE      0          5
#+end_example

When I use this with :exports results :results output drawer in my
document, I get:
#+begin_example src
1       <
            NA            NA <
        FALSE      0          5
2       <
            NA            NA <
        FALSE      0          5
#+end_example

I had an entirely separate email written and about to send, when it
dawned on me that the > character is the same as the R terminal prompt
and might be the cause.

My first attempt to reproduce was unsuccessful:

#+begin_src R :session :exports results :results output drawer
df <- data.frame(
  x = letters[1:3],
  y = c(1, 2, NA),
  z = c("x", NA,"z"))
df
#+end_src

#+RESULTS:
:results:
  x  y    z
1 a  1    x
2 b  2 <NA>
3 c NA    z
:end:

I'm not sure if it's about more columns or more rows, but this does the trick:

#+begin_src R :session :exports results :results output drawer
df <- data.frame(
  x = letters[1:7],
  y = c(1, 2, NA, NA, NA, NA, NA),
  z = c("x", NA, NA, NA, NA, NA, "z"),
  a = c(1, rep(NA, 6)))
df
#+end_src

#+RESULTS:
:results:
  x  y    z  a
1 a  1    x  1
2 b  2 <
NA
3 c NA <
NA
### ... shortened
:end:

If you comment out the line with z=, it works again... but that's the
column with all the <NA> values. Then again, if you end the data.frame
at z and don't add column a, it *also* works despite the presence of
many <NA> values.

#+RESULTS:
:results:
  x  y    z
1 a  1    x
2 b  2 <NA>
3 c NA <NA>
### ... shortened
:end:

I'm imagining there's a... "parser?" somewhere that typically strips
off the command prompt from the results perhaps (and recall some vague
memory of someone telling me this years ago on the list). Is there a
way to stop this from happening?

Would this line be responsible, or something else?
https://github.com/bzg/org-mode/blob/main/lisp/ob-R.el#L453


Many thanks,
John


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-01-25 17:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-11 22:42 R terminal output does not match src block output due to ">" character in results John Hendy
2022-01-11 23:30 ` John Hendy
2022-01-16 13:30   ` Jeremie Juste
2022-01-17  0:48     ` John Hendy
2022-01-24  4:49       ` Jack Kamm
2022-01-25 17:46         ` John Hendy

Code repositories for project(s) associated with this 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).