コマンドラインニットに相当するものはR CMD Sweave myfile.rnw
何ですか?
4 に答える
一般的な解決策(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ファイルに移動して生成します。.RnwからPDFを作成するように調整します
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
test.Rhtml
これはすべてSconstruct
、他のあらゆる種類の依存関係に基づいて、Webサイト全体を構築し、それをサーバーにコピーするファイルの一部です。
今話題から外れている...
他の回答に追加するには、ファイルを編成/レンダリングして出力をすべて1行で開きたい場合は、次を使用できます。
Rscript -e "rmarkdown::render('file.Rmd')" & open file.pdf
再利用可能なVimコマンドとして実行する方が簡単なので、すべてを1行で実行することをお勧めします。
open
システムのデフォルト以外を使用する場合は、特定のアプリケーションに置き換えることもできます。私はWindowsを使用していて、現在開いているPDF出力を上書きするためにSumatraを使用したい場合にこれを使用する傾向があります(したがって、毎回閉じることを覚えておく必要はありません)。
R CMD knit file.Rmd
R CMDSweavefile.Rmdと直接同等です。
最近、この種の汚い作業のために、rmarkdownとknitrの機能が強化されています。スライドの場合、Rmarkdown YAMLヘッダーを使用して目的の出力形式を指定しており、コマンドラインは次のように基本的です。
R -e "library(rmarkdown); render(\"file.Rmd\")"