exportando tabla de R

Sep 30 2020

Estoy tratando de exportar una tabla desde un bloque de código R y he leído Resultados de evaluación (El manual de la organización) que establece que las tablas se pueden generar con opciones de encabezado de :exports results :results value table.

Para obtener la tabla en el formato correcto, estoy usando la toOrgfunción del paquete R de orgutils .

Desafortunadamente, no parece funcionar con este simple ejemplo ...

#+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

Al compilar en HTML, solo obtengo el código, no se muestra ninguna tabla en el búfer Org (las figuras se muestran en línea) y no se muestra ninguna tabla en el HTML resultante.

Si ejecuto solo el código R dentro de una sesión R, se imprime ...

> 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 |

Realmente no puedo ver lo que estoy haciendo mal aquí y cualquier consejo sería recibido con gratitud.

Respuestas

2 Philopolis Sep 30 2020 at 14:35

Primero, dos comentarios: su ejemplo no es perfectamente reproducible (no importa la biblioteca R conveniente para el %>%operador y hay un error tipográfico en el encabezado de su segundo bloque src). No sé si esto lo explica todo, pero esto podría explicar una parte de su problema.

No estoy seguro de por qué necesita un paquete R externo para un ejemplo tan simple. Usando el enfoque del modo de organización estándar, esto simplemente funciona:

#+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

De lo contrario, si realmente desea utilizar este paquete, el tipo de resultado no debería ser un value; debería ser raw outputen su lugar. El siguiente bloque src es perfectamente equivalente al anterior:

#+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