混合bash和R命令

时间:2018-01-30 15:48:46

标签: r bash

在阅读了其他一些帖子之后,我似乎无法弄清楚如何成功地混合使用bash和R命令。

我需要使用用户定义的函数。我的想法如下;

#!/bin/bash
#fasta conversion
#$ -N convert_fasta
#$ -o convert_fasta.stdout
#$ -e convert_fasta.stderr

module load R/3.4.0
input=/data/dir/path
output=/output/dir/path

#set output directory define function
setwd($output/)
convert <- function(fasta.file, file.name="phylip.phy"){...}

#bash loop to convert files
for file in `ls $input/*.fasta`
do
    convert($file,'$file.phy')
    echo '$file converted to .phy'
done

但是,这似乎不起作用。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以尝试下面这样的操作,只需确保注意bash和R端的变量名称。 \ $输出被转义以避免bash解释它。我告诉你R和bash之间的交互:),即如果你想在bash端使用R值。

#!/bin/bash
#fasta conversion

RScript -e <<<EOFR
    module load R/3.4.0
    input=/data/dir/path
    output=/output/dir/path

    #set output directory define function
    setwd(\$output/)
    convert <- function(fasta.file, file.name="phylip.phy"){...}
EOFR

同时检查this page