Tabelle aus R exportieren

Sep 30 2020

Ich versuche, eine Tabelle aus einem R-Code-Block zu exportieren, und habe die Bewertungsergebnisse (The Org Manual) gelesen, in denen angegeben ist, dass Tabellen mit Header-Optionen von ausgegeben werden können :exports results :results value table.

Um die Tabelle im richtigen Format zu erhalten, verwende ich die R- PaketfunktiontoOrg von orgutils .

Leider scheint es mit diesem einfachen Beispiel nicht zu funktionieren ...

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

Beim Kompilieren in HTML erhalte ich nur den Code, im Org-Puffer selbst wird keine Tabelle angezeigt (Zahlen werden inline angezeigt) und im resultierenden HTML keine Tabelle.

Wenn ich nur den R-Code innerhalb einer R-Sitzung ausführe, wird ...

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

Ich kann wirklich nicht sehen, was ich hier falsch mache und alle Hinweise wären dankbar.

Antworten

2 Philopolis Sep 30 2020 at 14:35

Zunächst zwei Bemerkungen: Ihr Beispiel ist nicht perfekt reproduzierbar (Sie importieren die praktische R-Bibliothek für den %>%Operator nicht und es gibt einen Tippfehler in der Kopfzeile Ihres zweiten src-Blocks). Ich weiß nicht, ob dies alles erklärt, aber dies könnte einen Teil Ihres Problems erklären.

Ich bin mir nicht sicher, warum Sie für ein so einfaches Beispiel ein externes R-Paket benötigen. Bei Verwendung des Standardansatzes im Organisationsmodus funktioniert dies einfach:

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

Andernfalls sollte der Ergebnistyp nicht a sein, wenn Sie dieses Paket wirklich verwenden möchten value. es sollte raw outputstattdessen sein. Der folgende src-Block entspricht vollkommen dem vorherigen:

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