私はRスタジオを使用しています。Rスクリプトが直接または別のスクリプト内で実行されているかどうかを知る方法はありますか?
Rスクリプトがコンソールのsourceコマンドによって直接実行されているかどうかを知る方法はありますか?すなわち、別のスクリプトがソースとなり、これには最初のスクリプトが呼び出されます。
これは、場合によっては値の入力を促すのに便利です。
私が今やっていることは、変数をtrueまたはfalseに設定し、スクリプト内でその変数をチェックすることです。これは機能しますが、自動的に改善されます。
お時間をいただきありがとうございます。
EDIT >>>詳細情報
はの私があると正常に動作独立したスクリプトがあるとしましょう、しかし、このスクリプトは、別のスクリプトが終了した後に実行するプロセスの一部です。私は両方を実行する必要がある場合は、私は最初の、次に2番目を実行することができます。私はちょうど秒を実行するチャンスを持っています。
私が尋ねるのは、(2番目のスクリプトで)この2番目が最初かどうかから呼び出されたかどうかを確認する方法があるかどうかです。
(グレッグ・雪からの回答に触発さ)彼の簡単な例を見
scripta.Rください:
writeLines("script A")
if (interactive()) writeLines("interactive: true") else writeLines("interactive false")
source("scriptb.r")
scriptb.R:
writeLines("script B")
if (interactive()) writeLines("interactive: true") else writeLines("interactive false")
writeLines("end B")
Rstudioで結果をis
script A
interactive: true
script B
interactive: true
end B
after B
私は好きなものを持っています
script A
interactive: true
script B
interactive: false
end B
after B
私は今、より明確になることを望みます。
おかげ
この設定を使用する理由についてもう少し詳しく説明できますか?それは私に少し秘密に聞こえる... –