СинопсисВязать PDF из RMD сценария, щелкнув исполняемый файл г
Я wuold хотел произвести PDF-файл из сценария RMD просто щелкнув файл/значок, чтобы мои сотрудники не исчерпывают себя сначала открыв RStudio.
Вопрос
Когда я увидел this на R-блоггеров, и получил это работает, я думал, что приближается идеальный поток работы от сценариев, чтобы поделиться своей работой, позволяя моим коллегам выполнить файл и получить pdf с обновленными номерами в результате. Однако я не могу заставить его работать с некоторыми функциями в библиотеке knitr.
Лучший сценарий в том, что этот вопрос интересен лишь немногие из вас там, но здесь идет:
Ниже вы можете увидеть сценарий в файле с именем RexecKnit.Rmd. Единственная причина, по которой она существует, чтобы вы могли протестировать всю процедуру для себя, если хотите. Кстати, я запускаю RStudio Version 0.99.467 в Windows 7, 64 бит.
---
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)
```
Я знаю, что это довольно длительный сценарий для тестирования, но это просто, чтобы убедиться, что все работает, когда я выполнить сценарий по двойному щелчку эта маленькая красота которая является файл с именем вызывающий knitr.Rexe (например, в сообщении R-Bloggers), содержащем этот маленький фрагмент кода:
library(knitr)
library(rmarkdown)
setwd('C:/repos/r_tutorials/executable R files')
knit('RexecKnit.Rmd')
Sys.sleep(3)
И это работает так, как ожидалось. При двойном кликивании файла скрипт запускается без открытия R или Rstudio, а файл .md создается в желаемой папке. И тот же скрипт работает, когда он хранится как .Rexe-файл и как .R-файл. Но вот проблема:
Я хочу, чтобы произвести PDF, и в соответствии с наконечником here, заменив
knit('RexecKnit.Rmd')
с
rmarkdown::render("RexecKnit.Rmd")
должен сделать трюк, пока заголовок YAML включает в себя следующее:
output: pdf_document
И это wo rk (это означает, что pdf создается с каждой деталью, указанной в сценарии длины), по крайней мере, когда он запускается как .R-файл. К моему разочарованию, он не работает, когда он запускается из файла .Rexec так:
library(knitr)
library(rmarkdown)
setwd('C:/repos/r_tutorials/executable R files')
rmarkdown::render("RexecKnit.Rmd")
Sys.sleep(3)
Спасибо за то, что смотреть на это!
Ваше предложение работает так же, как и rmarkdown :: render («RexecKnit.Rmd»). Он работает как .R-файл, но не как файл .Rexec. – vestland
Я отредактировал ответ. –
Я не уверен, для чего нужен «C: \ path_to_your_file \ your_file.Rout», но теперь я даю ему возможность. – vestland