klicken SynopsisStrick pdf von rmd Skript durch eine ausführbare Datei r
ich wuold gerne eine PDF-Datei von einem rmd Skript zu erzeugen, nur durch eine Datei klicken/ein Symbol, so dass meine Mitarbeiter sich nicht erschöpfen indem Sie zuerst RStudio öffnen.
Die Frage
Wenn ich this auf R-Blogger sah, und hätte es funktioniert, ich dachte, dass ich meine Arbeit zu teilen den perfekten Arbeitsablauf von scripting Annäherung durch meine Mitarbeiter lassen ausführen, um eine Datei und erhält ein PDF mit aktualisierten Nummern als Ergebnis. Ich kann jedoch nicht mit einigen Funktionen der Knitr-Bibliothek arbeiten.
Im besten Fall ist, dass diese Frage nur ein paar von euch da draußen interessant, aber hier geht:
Im Folgenden finden Sie einen Skript in einer Datei RexecKnit.Rmd genannt sehen können. Der einzige Grund, warum es da ist, ist, dass Sie das ganze Verfahren für sich testen können, wenn Sie wollen. Übrigens, ich verwende RStudio Version 0.99.467 unter Windows 7, 64 Bit.
---
title: "Executable R, rmd and pdf"
header-includes: \usepackage{caption} \usepackage{fancyhdr}
output: pdf_document
fig_caption: no
---
\addtolength{\headheight}{0.5cm}
\pagestyle{fancyplain}
\renewcommand{\headrulewidth}{0pt}
```{r Settings, echo = FALSE, eval = TRUE, results = "hide", warning = FALSE, message = FALSE}
rm(list=ls())
pck_loaded <- (.packages())
# Packages to load
pck_toload <- c('ggplot2', 'xts', 'quantmod', 'zoo', 'PerformanceAnalytics',
'tseries', 'mvtnorm', 'data.table', 'XLConnect', 'sqldf', 'stargazer', 'xtable', 'gridExtra', 'grid', 'TTR')
# Load packages
for(i in 1:length(pck_toload)) {
if (!pck_toload[i] %in% pck_loaded)
print(pck_toload[i])
library(pck_toload[i], character.only = TRUE)
}
```
\captionsetup[table]{labelformat=empty}
```{r repex1, echo = FALSE, eval = TRUE, results = "asis", warning = FALSE, message = FALSE, fig.width = 12, fig.height = 8}
# Data table with formatted numbers and text
v1 <- c("\\colorbox{white}{0.05}" , "\\colorbox{yellow}{0.57}", "\\colorbox{red}{-0.99}")
v2 <- c("An unexpected comment", "A qurious question", "And an insightful answer")
dt1 <- data.table(v1,v2)
# Data table using xtable
print(xtable(dt1,
caption = 'Fancy table'),
caption.placement = 'top',
comment = FALSE,
sanitize.text.function = function(x) x)
```
```{r repex2, echo = FALSE, eval = TRUE, results = "asis", warning = FALSE, message = FALSE, fig.width = 12, fig.height = 8}
# Data table wiht random numbers
dt2 <- data.table(replicate(2,sample(0:100,10,rep=TRUE)))
# ggplot of random numbers
plx <- ggplot(data=dt2 ,aes(x=V1, y = V2))
plx <- plx + geom_line(color = 'blue', fill = 'grey')
plx <- plx + theme_classic()
plx <- plx + labs(title="Random numbers", x="x-axis",y="y-axis")
plot(plx)
```
Ich weiß, das ist ein ziemlich langwieriger Skript für Testzwecke, aber es ist nur um sicher zu stellen, dass alles funktioniert, wenn ich das Skript auf einen Doppelklick auf diese kleine Schönheit auszuführen, die eine Datei Anrufer knitr.Rexe genannt ist (wie in der R-Bloggers Post) mit diesem kleinen Stück Code:
library(knitr)
library(rmarkdown)
setwd('C:/repos/r_tutorials/executable R files')
knit('RexecKnit.Rmd')
Sys.sleep(3)
Und das funktioniert wie erwartet. Wenn Sie die Datei doppelt anklicken, wird das Skript ausgeführt, ohne R oder Rstudio zu öffnen, und im gewünschten Ordner wird eine .md-Datei erstellt. Und dasselbe Skript funktioniert, wenn es als .Rexe-Datei und als .R-Datei gespeichert wird. Aber hier ist das Problem:
Ich mag ein PDF erzeugen, und nach einer Spitze here,
knit('RexecKnit.Rmd')
mit
rmarkdown::render("RexecKnit.Rmd")
ersetzen sollte, solange die YAML-Header den Trick schließt das ein:
output: pdf_document
Und es tut wo rk (was bedeutet, dass die PDF-Datei mit allen Details erstellt wird, die im lengthy-Skript angegeben sind), zumindest wenn sie als R-Datei ausgeführt wird. Zu meiner Enttäuschung, funktioniert es nicht, wenn es aus einer .Rexec Datei wie folgt ausgeführt wird:
library(knitr)
library(rmarkdown)
setwd('C:/repos/r_tutorials/executable R files')
rmarkdown::render("RexecKnit.Rmd")
Sys.sleep(3)
Thank you einen Blick auf diese für mit!
Ihre Suggestection funktioniert genauso wie rmarkdown :: render ("RexecKnit.Rmd"). Es funktioniert als eine R-Datei, aber nicht als eine .Rexec-Datei. – vestland
Ich habe die Antwort bearbeitet. –
Ich bin mir nicht sicher, was die "C: \ Pfad_zu_Ihr_Datei \ dein_Datei.Rout" ist, aber ich versuche es jetzt. – vestland