2017-04-21 190 views
0

我有一个名为ggplot_cnv.R的脚本,其中包含了一些函数。在bash循环中运行R函数

其中一个功能需要一个文件作为输入和输出GGPLOT2情节:

plot.notch <- function(cnv_file, from=NA, to=NA) { 
... 
} 

我希望能够对多个文件运行此。我知道你可以使用Rscript作为arg传递文件,然后将它发送到ggplot_cnv.R内的函数,但是有没有办法在我的主脚本(ggplot_cnv.R)中不使用args的情况下执行此操作?

例如,我怎么能在bash调用plot.notch功能从脚本ggplot_cnv.R for循环如(这不起作用):

for f in $(ls data/*.cnv); do 
    Rscript -e "ggplot_cnv.R::plot.notch(cnv_file = $f)"; 
done 
+0

可能会传递函数名'plot.notch'和'$ f'作为arg,然后使用'match.fun'? – zx8754

+0

也许没有'commandArgs','$ f'不能被识别? –

回答

0

我想,也许你可以使用R CMD BATCH做这样工作。

Usage: 

    R CMD BATCH [options] infile [outfile]