esportando la tabella da R

Sep 30 2020

Sto provando a esportare una tabella da un blocco di codice R e ho letto Risultati della valutazione (Manuale dell'organizzazione) che afferma che le tabelle possono essere visualizzate con le opzioni di intestazione di :exports results :results value table.

Per ottenere la tabella nel formato corretto sto usando la toOrgfunzione pacchetto R da orgutils .

Purtroppo non sembra funzionare con questo semplice esempio ...

#+STARTUP: align
#+TITLE: Test
#+AUTHOR: Me
#+PROPERTY: header-args:R :session *org-R*
#+PROPERTY: header-args:R :cache yes
#+PROPERTY: header-args:R :results graphics
#+PROPERTY: header-args:R :width 1024
#+PROPERTY: header-args:R :height 768
#+PROPERTY: header-args:R :tangle yes


#+begin_src R :session *org-R* :eval yes :exports none :results output silent
  library(orgutils)
  library(tidyverse)
#+end_src


#+begin_src R :session *org-R* :eval yes :exports both :results value table
  employee <- c('John Doe','Peter Gynn','Jolie Hope')
  salary <- c(21000, 23400, 26800)
  startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))
  employ.data <- data.frame(employee, salary, startdate)
  employ.data %>%
    toOrg()
#+end_src

Compilando in HTML ottengo solo il codice, nessuna tabella viene mostrata nel buffer Org stesso (le figure sono mostrate in linea) e nessuna tabella nell'HTML risultante.

Se eseguo solo il codice R all'interno di una sessione R, viene stampato ...

> employee <- c('John Doe','Peter Gynn','Jolie Hope')
> salary <- c(21000, 23400, 26800)
> startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))
> employ.data <- data.frame(employee, salary, startdate)
>  employ.data %>%
    toOrg()
| employee   | salary | startdate  |
|------------+--------+------------|
| John Doe   |  21000 | 2010-11-01 |
| Peter Gynn |  23400 | 2008-03-25 |
| Jolie Hope |  26800 | 2007-03-14 |

Davvero non riesco a vedere cosa sto facendo di sbagliato qui e qualsiasi suggerimento sarebbe ricevuto con gratitudine.

Risposte

2 Philopolis Sep 30 2020 at 14:35

Innanzitutto, due osservazioni: il tuo esempio non è perfettamente riproducibile (non importi la comoda libreria R per l' %>%operatore e c'è un errore di battitura nell'intestazione del tuo secondo blocco src). Non so se questo spieghi tutto, ma potrebbe spiegare una parte del tuo problema.

Non sono sicuro del motivo per cui hai bisogno di un pacchetto R esterno per un esempio così semplice. Utilizzando l'approccio della modalità organizzazione standard, funziona semplicemente:

#+begin_src R :session *org-R* :exports both :results value table :colnames yes
  employee <- c('John Doe','Peter Gynn','Jolie Hope')
  salary <- c(21000, 23400, 26800)
  startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))
  employ.data <- data.frame(employee, salary, startdate)
  employ.data
#+end_src

Altrimenti, se vuoi davvero usare questo pacchetto, il tipo di risultato non dovrebbe essere un value; dovrebbe essere raw outputinvece. Il seguente blocco src è perfettamente equivalente al precedente:

#+begin_src R :session *org-R* :exports both :results output raw :colnames yes
  employee <- c('John Doe','Peter Gynn','Jolie Hope')
  salary <- c(21000, 23400, 26800)
  startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))
  employ.data <- data.frame(employee, salary, startdate)
  toOrg(employ.data)
#+end_src