2015-10-02 7 views
7

あらすじニットPDF

私はちょうど私の同僚が自分自身を消耗しないように、ファイル/アイコンをクリックしてRMDスクリプトからPDFファイルを作成したいとwuold最初にRStudioを開きます。

質問

私はR-ブロガーにthisを見て、作業それを得たとき、私は私の同僚は、ファイルを実行して取得させることで自分の作品を共有するスクリプトから完璧な仕事の流れに近づいたと思いました結果として更新された数字を持つpdf。しかし、私はそれをknitrライブラリのいくつかの関数で動作させることはできません。

ベストケースのシナリオでは、この質問はあなたのほんの数そこに興味があるということですが、ここに行く:

あなたはというファイル内のスクリプトを参照してくださいをRexecKnit.Rmdすることができます以下。 それがある唯一の理由は、あなたが望むならあなた自身のために全体の手順をテストすることができるからです。ちなみに、私はRStudioバージョン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と呼ばれるファイルであるこの小さな美しさ.Rexe (R-Bloggersの記事のように)この小さなコードが含まれています:

これは期待どおりです。ファイルをダブルクリックすると、RまたはRstudioを開かずにスクリプトが実行され、.mdファイルが目的のフォルダに作成されます。同じスクリプトは、.Rexeファイルと.Rファイルとして保存されているときに動作します。 YAMLヘッダ限り、トリックを行う必要があります

rmarkdown::render("RexecKnit.Rmd") 

knit('RexecKnit.Rmd') 

を交換し、

私はPDFファイルを生成したい、と先端hereに従って: しかし、ここが問題ですこれを含む:

output: pdf_document 

そして、 rk(少なくとも、それが.Rファイルとして実行されるときは、pdfは、細かいスクリプトで指定されたすべての詳細を使用して作成されます)。それは、このような.Rexecファイルから実行されたときにがっかりしたことに、それは動作しません :

library(knitr) 
library(rmarkdown) 
setwd('C:/repos/r_tutorials/executable R files') 
rmarkdown::render("RexecKnit.Rmd") 
Sys.sleep(3) 

はこれを見て持ってくれてありがとう!

はまず::作る

答えて

2

1は独立して、彼女は次のようにそれを行うことができます(この場合に問題の根本であることが判明Windowsマシンにpandocをインストールしたと仮定すると、

library(knitr) 
library(rmarkdown) 
setwd('C:/repos/r_tutorials/executable R files') 
knit("RexecKnit.Rmd") 

# render the generated markdown file. 
render("RexecKnit.md") 

Sys.sleep(3) 

セカンド以下のような内容で.Rファイル:.batファイルを作成

.batファイルを作成します(例: "my_bat_file.bat")。以下のテキストを含めます。ただし、パスを調整する必要があります:

"C:\R\R-3.2.2\bin\x64\R.exe" CMD BATCH --vanilla --slave "C:\path_to_your_file\your_file.R" "C:\path_to_your_file\your_file.Rout" 

サード:データが頻繁に更新されている場合は、1を繰り返し週に一度.batファイルを実行するためにWindowsのタスクスケジューラをsheduleできWindows Task Scheduler

に指示します夜の特定の時間には、朝に報告があります。

+0

あなたのsuggetionはrmarkdown :: render( "RexecKnit.Rmd")と同じように動作します。これは.Rファイルとして動作しますが、.Rexecファイルとしては動作しません。 – vestland

+0

私は答えを編集しました。 –

+0

「C:\ path_to_your_file \ your_file.Rout」が何であるか分かりませんが、今すぐ行っています。 – vestland

関連する問題