1

R内からbashファイルを実行しようとしています。したがって、次のように正常に動作しています。

setwd(path.expand("~/Documents/Rcode/"))

system("ls -F")
system('~/Documents/Rcode/GFR_test/run.sh')

したがって、run.sh ファイルのパス全体を指定したため、これはまったく問題なく機能します。ただし、長いコードや多数の bash ファイルを実行する場合、これは面倒です。したがって、各shファイルの変数を次のように作成する必要がありました。

myPATH <- "~/Documents/Rcode/GFR_test/"

次にrun.shを呼び出します

 system(paste(myPATH, 'run.sh'))

残念ながら、エラーが発生するため、これは機能しません。

 sh: 1: ~/Documents/Rcode/GFR_test/ : Permission denied

私はそれが正しいことを知っているので、許可の問題は奇妙です。助けてください。ありがとう

4

1 に答える 1

2

を使用する場合paste、デフォルトのセパレータはスペースです。そう :

paste(myPATH, 'run.sh')

与えるでしょう:

~/Documents/Rcode/GFR_test/ run.sh

余分なスペースを抑えるには、に追加するかsep=""、デフォルトの空のセパレーターを持つものpaste()を使用する必要paste0 があります(そして少し高速です):

paste0(myPATH, 'run.sh')
于 2013-10-04T14:54:08.023 に答える