使用rstudio使用makefile,我将使用变量$(渲染(在我的分析/子目录中从RMD文件中生成HTML报告,然后我将将此HTML报告移至在制造规则的下一行中报告/子目录。
# define VARIABLES for Makefile
RENDER = Rscript -e "require(rmarkdown); render('$<')"
DAT = ./data
ANL = ./analysis
REP = ./reports
VPATH = $(DAT) $(ANL) $(REP)
# generate a report in html
foo.html: foo.Rmd bar.rds
$(RENDER)
mv foo.html $(REP)
如何将这两个步骤组合到一个变量命令中?
# Attempt:
RENDREP = $(RENDER); mv $($< : .Rmd=.html) $(REP)
# generate a report in html
foo.html: foo.Rmd bar.rds
$(RENDREP)
我对Rendrep变量的尝试产生了此错误消息:
Output created: foo.html
usage: mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory
make: *** [foo.html] Error 64
$($< : .Rmd=.html)
的语法是错误的,应该是
RENDREP = $(RENDER); mv $(<:.Rmd=.html) $(REP)
也就是说,只做
会更简单RENDREP = $(RENDER); mv $@ $(REP)