如何在knitr源文件中使用命令行参数?

如何在knitr源文件中使用命令行参数?,r,knitr,R,Knitr,我有一个R脚本,它接受命令行参数,我想将这些参数转换为Rtex或Rnw文件,并使用如下命令: knit('myScript.Rtex "-args arg1=a arg2=b"') 但是我不知道如何将我的命令行参数放入myScript.Rtex[用于通过args进行计算]您可以编写一个R脚本而不是bash脚本: my_script_launcher.R 然后像这样启动它: Rscript my_script_launcher.R foo bar 我也遇到了同样的问题,最后使用了以下命令(使用

我有一个R脚本,它接受命令行参数,我想将这些参数转换为Rtex或Rnw文件,并使用如下命令:

knit('myScript.Rtex "-args arg1=a arg2=b"')

但是我不知道如何将我的命令行参数放入myScript.Rtex[用于通过
args进行计算]您可以编写一个R脚本而不是bash脚本:

my_script_launcher.R 然后像这样启动它:

Rscript my_script_launcher.R foo bar

我也遇到了同样的问题,最后使用了以下命令(使用
make
):

#设置参数
P1=某些参数
P2=其他一些参数
#最高目标
全部:report.html
#将标记转换为HTML
%.html:%.md

Rscript-e'require(markdown);markdownToHTML($感谢您的建议。我需要提供一个从bash调用的解决方案,其中包含从bash命令行传递的参数。因此,我想我将使用该bash实例的环境,并使用Sys.getenv()获取所需的内容。这有点难看,但我需要继续。@jimdavies不清楚您想做什么。查看
knit
command,它期望类似于,…
knit(输入、输出,…)
这是我随
knitr
一起提供的shell脚本:但我不清楚您想对
--args执行什么操作--是否要将它们传递给
knit()
,或者在计算中使用它们?在计算中使用它们。例如,如果我有一个从命令行运行的R脚本as@jimdavies如果你想澄清什么,请编辑你原来的帖子;这里的评论在写和读代码方面都有很大的限制
#!/bin/bash
if [ $# -ne 2 ];
  then ` echo "Usage: $0 refdir cmpdir" exit 1`
fi
export CSPP_VIIRS_EDR_REFERENCE_DIR=$1
export CSPP_VIIRS_EDR_COMPARISON_DIR=$2
script=$(dirname $0)'/viirs_edr_UseR_compare.Rnw'
R --slave --no-save --no-restore -e "require(knitr); knit('$script')" &> viirs_edr_UseR_compare.log
pdflatex viirs_edr_UseR_compare.tex
exit 0
library(knitr)
args <- commandArgs(TRUE)
if (length(args) < 2) stop("Bad args, usage refdir cmpdir")

refdir <- args[1]
cmpdir <- args[2]

knit2pdf('my_script.Rnw')
\documentclass{article}
\begin{document}
refdir=\Sexpr{refdir}
cmpdir=\Sexpr{cmpdir}
\end{document}
Rscript my_script_launcher.R foo bar
# set parameters
P1=some parameter
P2=some other parameter

# top target
all : report.html

# convert Markdown to HTML
%.html : %.md
    Rscript -e 'require(markdown);markdownToHTML("$<","$@")'

# knit Rmd passing parameters
%.md : %.Rmd
    Rscript -e 'param1<-$(P1);param2<-$(P2);require(knitr);knit("$<")'