r-在makefile中创建变量,从而将输出呈现到新的子目录



使用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)

最新更新