bashシェルを使用できる場合は、bashスクリプト内からRコードを実行し、stdoutストリームとstderrストリームをファイルにパイプすることを検討できます。ヒアドキュメントを使用した例を次に示します。
ファイル: test.sh
echo "Hello World, this is bash"
test1=$(echo "This is a test")
echo "Here is some R code:"
Rscript --slave --no-save --no-restore - "$test1" <<EOF
cat("\nHello World, this is R\n")
args <- commandArgs(TRUE)
bash_message<-args[1]
cat("\nThis is a message from bash:\n")
cat("\n",paste0(bash_message),"\n")
EOF
次に、stderrとstdoutの両方をログファイルにパイプしてスクリプトを実行すると、次のようになります。
$ chmod +x test.sh
$ ./test.sh
$ ./test.sh &>test.log
$ cat test.log
Hello World, this is bash
Here is some R code:
Hello World, this is R
This is a message from bash:
This is a test
これを確認する他のことは、stdoutとstderrをRヒアドキュメントからログファイルに直接入力してみることです。私はまだこれを試していませんが、おそらくうまくいくでしょう。