2014-06-06 12 views
12

Auf RStudio Version 0.98.501 hatte ich eine lange .RMD-Datei, die leicht in HTML konvertiert wurde, sobald ich KnitHtml-Taste geklickt habe. Der "Knitting" -Prozess hat, soweit ich weiß, mehrere Ordner erstellt, darunter Bilder (einige wurden von mir manuell hinzugefügt), Figuren, Cache und einen strickHtml-Ordner, der die endgültige .html-Datei enthielt. Ich habe vor kurzem RStudio Version 0.98.894 (Preview Release) heruntergeladen, weil ich mehr Funktionen nutzen wollte. Nun, wenn ich knitHtml klicken erhalte ich Fehler folgende:Warum ruft Pandoc die Image-Datei nicht ab?

pandoc.exe: Failed to retrieve C:/Users/durraniu/Documents/Trajectory1/images/vissim-view.png InvalidUrlException "C:/Users/durraniu/Documents/Trajectory1/images/vissim-view.png" "Invalid scheme" Error: pandoc document conversion failed with error 61 

Ich kopierte alle Bilder einschließlich der vissim-view.png wie oben angegeben, aus den Bildern auf den knitHtml Ordner Ordner und klickte erneut auf die Schaltfläche. Dieses Mal gab es den gleichen Fehler bezüglich der Bilddatei, die R erzeugen würde, d. H. Ein Plot. Ich weiß nicht, wie ich das lösen soll. Bitte helfen Sie.

+1

Verwenden Sie niemals absolute Pfade, es sei denn, Sie müssen dies unbedingt tun. Verwenden Sie relative Pfade, wann immer Sie können. Stellen Sie Ihr Bild unter das gleiche Verzeichnis wie die Rmd-Datei und verwenden Sie '! [] (Vissim-view.png)'. –

+1

Pandoc auf Windows ist nicht gut im Umgang mit Pfaden. Wenn Sie möchten, können Sie das KnitToHTML-Verhalten von 0.98.501 wiederherstellen, indem Sie den Kommentar ' 'zu Ihrem Dokument. Siehe [Migration von RMarkdown V1] (http://rarkdown.studio.com/authoring_migrating_from_v1.html). – Jonathan

+1

@ Jonathan Danke für den Vorschlag. Ich wollte rmarkdown Version 2 verwenden, um Inhaltsverzeichnis hinzuzufügen. Es scheint mir jetzt, nach Yihuis Kommentar, dass es fast unmöglich ist, eine Rmd-Datei zu stricken, die auf einer älteren Version von RStudio in einer neuen Version erstellt wurde. Ich muss entweder die Pfade aller Bilder ändern oder Inhalt ohne Inhaltsverzeichnis haben. By the way, danke Yihui, ich werde dies in meinem Kopf behalten, um beim nächsten Mal keine absoluten Wege zu benutzen. –

Antwort

2

ich einen ähnlichen Fehler wie folgt festgestellt: pandoc.exe: Es konnte keine Datendatei ProjectPart1_files/figur html/sample_Mean_versus_Theoretical_Mean-1.png Fehler finden: pandoc Konvertierung von Dokumenten mit Fehler 97 fehlgeschlagen

Und Ein Satz von dieser Seite http://rmarkdown.rstudio.com/authoring_rcodechunks.html löste mein Problem.

"Wenn Probleme mit der zwischengespeicherten Ausgabe auftreten, können Sie den Knitr-Cache jederzeit löschen, indem Sie den Ordner mit dem _cache-Suffix im Dokumentverzeichnis entfernen."

Als der Fehler auftrat, gab es genau einen Ordner mit dem Namen "ProjectPart1_cache" im Arbeitsverzeichnis. Nachdem ich es gelöscht habe, wurde der Fehler entfernt.

2

Leider hat Jonathans Antwort in den Kommentaren für mich funktioniert. Ich fügte hinzu:

<!-- rmarkdown v1 --> 

Zu meinem Dokument, und es hat den Trick. Er behauptet, dass dies daran liegt, dass Pandoc unter Windows nicht gut im Umgang mit Pfaden ist.

Wenn jemand anderes eine bessere Antwort schreiben würde, würde ich diese gerne löschen.

+1

Ich würde empfehlen, die neueste Version von R Studio zu verwenden und relative Pfade zu verwenden. So mache ich es jetzt. –

+0

Irgendwelche Updates zu diesem Thema? Ich bin neu mit RStudio (und das zugehörige Tooling) und ich habe den gleichen Fehler. –

5

Während mehrere richtigen Lösungen, die oben sind, mag ich hinzufügen, dass eine häufige Ursache für diesen Fehler syntaktischer ist, wenn der Autor aus Versehen der Dateinamen in dem Abschlag in Anführungszeichen hüllt:

![my image]("my_image.png") 

Diese Dies führt dazu, dass Pandov die Datei nicht finden kann. Ich finde diesen Fehler in knitr leicht zu machen, da wir R-Skripte mit Abschriften verschränken.

Der richtige Weg, um das Bild einzufügen ist:

![my image](my_image.png) 
0

@ oben Yihui Kommentar war die Antwort, die für mich gearbeitet, und es ist nicht eine aktuelle Antwort hier, also ich hinzufüge es:

"Never use absolute paths unless you absolutely have to. Use relative paths whenever you can. Put your image under the same directory as the Rmd file, and use ![](vissim-view.png) ."

Die Verwendung eines relativen Pfades funktioniert für mich, wo ein absoluter Pfad nicht funktioniert.