2014-10-10 6 views
5

Ich schreibe gerade eine Dokumentation für eine R package hosted on GitHub. Ich benutze knitr zusammen mit R Markdown, um die README-Datei zu schreiben. Wenn Sie in RStudio auf die Schaltfläche "HTML stricken" klicken, wird ein HTML erzeugt, wie ich es von mir erwarte.GitHub zeigt alle Code-Chunks von README.rmd an (trotz include = FALSE)

Das Drücken von README.rmd zu GitHub führt jedoch zu dem, was Sie im unteren Seitenabschnitt sehen, wenn Sie dem obigen Link folgen. Zum Beispiel wird der oberste Code Chunk erklärt, wie in der README.rmd Datei folgt:

```{r global_options, include = FALSE} 
library(knitr) 
options(width = 120) 
opts_chunk$set(fig.width = 12, fig.height = 8, fig.path = 'Figs/', 
       include = TRUE, warning = FALSE, message = FALSE) 
``` 

jedoch die include = FALSE Anweisung in der ersten Zeile des Codes in diesem Fall einfach ignoriert wird, und das Stück Code, das war versteckt sein soll, wird auf der entsprechenden GitHub-Seite angezeigt. Zusätzlich werden Ergebnisse (z. B. von plot(), head()) nicht visualisiert, obwohl opts_chunk$set(..., include = TRUE).

Hat jemand auf ein ähnliches Problem gestoßen und kann ich mir helfen, mein README-Dokument richtig angezeigt zu bekommen, d. H. Wie RStudio es behandelt, auf GitHub?

Antwort

9

Die Readme-Datei, die Sie auf Github veröffentlichen möchten, sollte ein einfaches Markdown-Dokument sein, d. H. Eine .md Datei und nicht die rohe .rmd. Also zuerst stricken Sie die .rmd mit knitr (in R) wie folgt:

knit(input="readme.rmd", output = "readme.md") #see ?knit for more options 

, dass die globalen und Chunk Optionen in der .rmd Quelle angegeben werden bewerten und ein .md produzieren, die entsprechend formatiert sind und die Github leicht machen.

+0

Wusste nicht, dass es so einfach war. Danke (: – fdetsch

+0

Oh @Shekeine, ich habe vergessen zu fragen: Gibt es eine Möglichkeit, die 'strick' Anweisung direkt in meine README.rmd Datei zu implementieren und sie automatisch konvertieren zu lassen, wenn man 'Stricken HTML' drückt, oder muss ich ausführen es manuell von der Konsole jedes Mal? – fdetsch

+1

R-Befehle, die ausgeführt werden, während 'stricken()' oder wenn Sie "Knit HTML streichen" können in der '.rmd' eingeschlossen werden, indem Sie sie in doppelten Anführungszeichen einschließen. Jedoch Schreiben' ' stricken (blah blah blah) '' in deinem '.rmd' könnte dich in eine Endlosschleife bringen :-), nicht sehr sicher, wie ich es noch nie versucht habe: du könntest, aber ich sehe keine wünschenswerten Ergebnisse vor. Alternativ dazu können Sie, wenn Sie Rstudio verwenden, knitr bitten, nach dem Erstellen des HTML-Codes die Markdown-Quelldatei beizubehalten. Diese Option kann in Knitr-Einstellungen aktiviert werden (kleines Zahnrad neben "stricken html" in rududio) unter der Registerkarte "Erweitert". – shekeine

1

Für weitere Informationen über ein .Rmd mit der .md siehe Readme.Rmd Abschnitt zu erzeugen http://r-pkgs.had.co.nz/release.html

Sie können auch devtools eingerichtet haben diese automatisch für Ihr Paket devtools::use_readme_rmd() verwenden.

+0

Nach Hadleys Buch hatte ich Probleme beim Laden meines eigenen Pakets in der Rmd-Datei, um seine Verwendung zu demonstrieren. In der Tat ist das Paket in der Entwicklung, also nicht auf meiner Maschine installiert und knitr verfügbar. Wie komme ich damit klar? – Heisenberg

+0

Verwenden Sie 'devtools :: dev_mode()' und installieren Sie das Paket. Sie müssen das Paket installiert haben, um Vignetten zu erstellen. – Jim