コマンドラインとは knitrR CMD Sweave myfile.rnw
と同等ですか?
一般的な解決策(Rバージョンに関係なく機能します):
Rscript -e "library(knitr); knit('myfile.Rmd')"
R 3.1.0以降、R CMD Sweave
は、Sweave以外のドキュメントのサポートを開始しました(ただし、コマンド名は少し変に聞こえます)。ドキュメントでビネットエンジンを指定することだけが必要です。
%\VignetteEngine{knitr::knitr}
knitrで可能なビネットエンジンを表示するには、次を使用します。
library(knitr)
library(tools)
names(vignetteEngine(package = 'knitr'))
# "knitr::rmarkdown" "knitr::knitr" "knitr::docco_classic" "knitr::docco_linear"
私はknitme.Rスクリプトを持っています:
library(knitr)
render_html()
source("hooks.R") # mods to defaults
inFile = commandArgs(trailingOnly=TRUE)[1]
outFile = commandArgs(trailingOnly=TRUE)[2]
knit(inFile,output=outFile)
だから私はできる
Rscript knitme.R $SOURCE $TARGET
どこ $SOURCE
および$TARGET
は必要に応じてです。
これをMake
に統合することもできるため、必要なことは次のとおりであるというルールがありました。
make myfile.html
そして、それはmyfile.Rhtml
およびHTMLファイルを生成します。 PDF from .Rnwになるように調整します
Makeの代わりに SCons で使用しているので、少し複雑なSconscriptファイルがあります(部分的にSConsの使い方を習得したばかりなので、少し粗雑かもしれません)
env=Environment()
bld = Builder(action = '/usr/bin/Rscript knitme.R $SOURCE $TARGET',
suffix='.html',
src_suffix='Rhtml')
env.Append(BUILDERS = {'Knit' : bld})
env.Knit(source='test.Rhtml',target='test.html')
次に、私がする必要があるのは:
scons test.html
そして私はtest.html
から構築されたtest.Rhtml
if test.Rhtml
変更されました。
これは、すべての他の依存関係に基づいて、Webサイト全体を構築してサーバーにコピーするSconstruct
ファイルの一部です。
今話題外の漂流...
他の回答に追加するには、ファイルを編成/レンダリングして出力をすべて1行で開きたい場合は、次のコマンドを使用できます。
Rscript -e "rmarkdown::render('file.Rmd')" & open file.pdf
再利用可能なVimコマンドとして実行する方が簡単であるため、すべてを1行で実行することをお勧めします。
システムのデフォルト以外を使用する場合は、open
を特定のアプリケーションに置き換えることもできます。 Windowsを使用していて、スマトラを使用してPDF現在開いている出力を上書きするため、毎回閉じることを覚えておく必要がない)場合は、これを使用する傾向があります。
R CMD knit file.Rmd
r CMD Sweaveファイルと直接同等です。Rmd
最近、このような汚い作業のためにrmarkdownとknitrに拡張機能があります。スライドの場合、Rmarkdown YAMLヘッダーを使用して目的の出力形式を指定しており、コマンドラインは基本的なものです。
R -e "library(rmarkdown); render(\"file.Rmd\")"