Alternative zu knitr / echte R-in-tex-integration

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Alternative zu knitr / echte R-in-tex-integration

von MoonKid » Do 29. Okt 2015, 12:10

Asche über mein Haupt!
Danke sehr.

Also nach ersten Versuchen (zwei simple Histogramme) erscheint mir tikzDevice recht brauchbar. Es fügt sich gut in meine vorhandene Umgebung ein.

von Gast » Do 29. Okt 2015, 11:39

Als "offizielle" Quelle würde ich bei R-Paketen ruhig CRAN ansehen, deswegen habe ich ja in meinem ersten Hinweis dahin verlinkt.

Und der Hinweis mit dem Tippfehler bezieht sich auf Deinen ersten Versuch, denn das Paket heißt tikzDevice, probier es doch erstmal mit
install.packages('tikzDevice')
bei mir ging das wunderbar.

von MoonKid » Do 29. Okt 2015, 10:40

Danke für den manual-Hinweis. Bei den vielen Reps und Maintainern kommt man durcheinander. Auch der Inhalt der PDFs verwirrt mich nur. Die Installations-Anweisung (in Part II) beziehen sich auf ein tex-environment und nicht auf R. Ich finde keine install.packages-Anweisung im gesamten Dokument.

Dein Hinweis mit dem Tipfehler bezieht sich aber nur auf die nicht-vertrauenswürdige Quelle.

Woher soll ich nun wissen, was offiziell suported wird?
> install.packages('tkizDevice')
oder
install.packages("tkizDevice", repos="http://R-Forge.R-project.org")

von Gast » Do 29. Okt 2015, 10:19

MoonKid hat geschrieben:Das wäre der oft beschriebenen Workaround. Du musst aber auch den preambel noch mit berücksichtigen usw.
Das geht, ist aber ne Krücke.
Ich hätte mir ja denken können, dass ich nicht der erste bin, der diese geniale Idee hat. :) Ich denke, das kann aber, wenn man es richtig macht, ein recht gutes Workaround sein.
MoonKid hat geschrieben:Wenn ich das auf github richtig sehe ist der Maintainer von tikzDevice der gleiche wie von knitr?
Kann sein, bei CRAN stehen viele Mitautoren für beide Pakete und da sind auch Überschneidungen dabei, aber der Maintainer ist jeweils ein anderer. Wobei die github-Repositorys vom selben Nutzer sind.
MoonKid hat geschrieben:Ich finde keine offizielle Doku zu tikzDevice. Gibt es da irgendwo ein Handbuch.
Die Doku findest Du in dem ersten von mir erwähnten Link (https://cran.rstudio.com/web/packages/tikzDevice/index.html) oder direkt unter https://cran.rstudio.com/web/packages/tikzDevice/tikzDevice.pdf die Vignette ist https://cran.rstudio.com/web/packages/tikzDevice/vignettes/tikzDevice.pdf.
MoonKid hat geschrieben:Und es scheint veraltet. Lässt sich mit der aktuellsten R-Version nicht installieren.
Ich glaube eigentlich nicht, dass das Paket veraltet ist; die letzte Version ist von Januar 2015, also noch nicht so alt. Bei github scheint die Entwicklung auch fleißig voranzugehen. In R Version 3.1.2 habe ich das Paket ohne Probleme installiert bekommen. Es schient eher so, als hättest Du bei Deinem ersten Versuch einen Tippfehler drin gehabt (tkizDevice sollte tikzDevice sein) und beim manuellen Versuch fehlten Abhängigkeiten. (Hier bei Stackoverflow gib es immerhin jemanden, der das Paket mit R 3.2.2 zum Fliegen bekommen hat, gut dann derjenige andere Probleme, aber es schient installiert zu sein.)

von MoonKid » Mi 28. Okt 2015, 21:52

Anonymous hat geschrieben:reicht vielleicht auch nur das R-Paket tikzDevice (Beispiel bei TeXample.net)
Wenn ich das auf github richtig sehe ist der Maintainer von tikzDevice der gleiche wie von knitr?

Ich finde keine offizielle Doku zu tikzDevice. Gibt es da irgendwo ein Handbuch.

Und es scheint veraltet. Lässt sich mit der aktuellsten R-Version nicht installieren.
> install.packages('tkizDevice')
Installing package into ‘/home/user/R/i686-pc-linux-gnu-library/3.2’
(as ‘lib’ is unspecified)
--- Bitte einen CRAN Spiegel für diese Sitzung auswählen ---
Warnmeldung:
package ‘tkizDevice’ is not available (for R version 3.2.2)
Auch die Installation aus nicht-vertrauenswürdiger Quelle (wie im Example dargestellt) funktioniert nicht.
> install.packages("tikzDevice", repos="http://R-Forge.R-project.org")
Installing package into ‘/home/user/R/i686-pc-linux-gnu-library/3.2’
(as ‘lib’ is unspecified)
Warnung: dependency ‘filehash’ is not available
versuche URL 'http://R-Forge.R-project.org/src/contrib/tikzDevice_0.6.3.tar.gz'
Content type 'application/x-gzip' length 1733547 bytes (1.7 MB)
==================================================
downloaded 1.7 MB

ERROR: dependency ‘filehash’ is not available for package ‘tikzDevice’
* removing ‘/home/user/R/i686-pc-linux-gnu-library/3.2/tikzDevice’

Die heruntergeladenen Quellpakete sind in
        ‘/tmp/RtmpjRvDfX/downloaded_packages’
Warnmeldung:
In install.packages("tikzDevice", repos = "http://R-Forge.R-project.org") :
  Installation des Pakets ‘tikzDevice’ hatte Exit-Status ungleich 0

von MoonKid » Mi 28. Okt 2015, 21:35

Anonymous hat geschrieben:Ein bisschen Googlen sagt mir, dass man eher von Sweave nach KnitR umsteigt als umgekehrt.
So war es bei mir auch. Sweave hat das gleiche (für mich unpassende) Design-Konzept wie knitr.
Anonymous hat geschrieben:Vielleicht wäre es für Dich eine Möglichkeit, Den Code mit \input auszulagern. Dann hast Du ein echtes .tex-Dokument und nur Dein \input muss von Sweave/KnitR verarbeitet werden, ich weiß aber nicht, ob das geht, oder ob irgendetwas an einer document-Umgebung hängt.
Das wäre der oft beschriebenen Workaround. Du musst aber auch den preambel noch mit berücksichtigen usw.
Das geht, ist aber ne Krücke.
Wichtig zu beachten bei evtl. Tests: knitr() überschreibt ungefragt, bereits vorhandene tex-files.

Wahrscheinlich wird es der Einfachheit halber bei dem knitr-Workaround bleiben.

von Gast » Mi 28. Okt 2015, 17:47

Je nachdem wofür Du R brauchst, reicht vielleicht auch nur das R-Paket tikzDevice (Beispiel bei TeXample.net), damit kannst Du Graphiken aus R in TikZ exportieren und die Ergebnisse haben mir damals sehr gut gefallen (nur wenn die Graphiken zu viele Details haben, kann TeX schon an seine Kapazitätsgrenze kommen). Auch Tabellen kann man als TeX-Code exportieren bei Stackoverflow gibt es dazu eine Frage.

Sweave habe ich schon erfolgreich genutzt, aber das unterscheidet sich von KnitR eher in Detailfragen, als in der generellen Idee, wenn ich das richtig sehe. In beiden fällen hast Du ein .rnw- oder .Rtex-File, hast also nie wirklich "echtes" .tex. Ein bisschen Googlen sagt mir, dass man eher von Sweave nach KnitR umsteigt als umgekehrt.

Vielleicht wäre es für Dich eine Möglichkeit, Den Code mit \input auszulagern. Dann hast Du ein echtes .tex-Dokument und nur Dein \input muss von Sweave/KnitR verarbeitet werden, ich weiß aber nicht, ob das geht, oder ob irgendetwas an einer document-Umgebung hängt.

Möglicherweise - aber das ist eher eine irre Idee und ich habe keine Idee, ob das überhaupt funktionieren kann - kann man R-Support in pythontex einbauen, das kann nämlich nicht nur Python sondern auch Ruby, Julia und Octave.

von Besserwisser » Mi 28. Okt 2015, 13:11

Ohne genau zu wissen, was du da machst, werfe ich einfach mal zusätzlich sasnrdisplay in den Raum.

von Johannes_B » Mi 28. Okt 2015, 12:59

Alternative zu knitr / echte R-in-tex-integration

von MoonKid » Mi 28. Okt 2015, 12:34

Ich suche eine Alternative zu knitr, welche auch ein entsprechend entgegengesetzes Nutzungsprinzip verfolgt.

knitr ist entworfen, dass das Primärdokument ein Rnw-file ist und daraus tex-files generiert werden. Das ist (wie man bei support-Anfragen sieht) oft nicht gewünscht. Es gibt auch workarounds dafür, aber keine echten Lösungen.

Nun bin ich auf der Suche nach einer Möglichkeit R in tex zu integrieren, ohne dabei mein gewohntes tex-file aufgeben zu müssen. R sollte eine sub-Kombonente sein und sich meinem tex-environment "unterordnen" und nicht wie bei knitr dem tex-environment überstülpen.

Existiert so etwas?

Nach oben