私は2つのRスクリプトを持っています。 scriptBは、scriptB例えばlibrary(x)
を呼び出すため、xが、しかしknitr
又はstringr
であるか、またはいくつかの他のパッケージRスクリプトを入手する際にパッケージをロードする場所
場合のScriptaとscriptB両方が同じlibrary(x)
をロード
(「scriptB.R」)源を介してのScriptaで呼び出されますscriptAはlibrary(x)
をアンロードしてから、スクリプトBをロードします(library(x)
)。これは、次のエラーにつながる:私はなぜこれが起こっているかわからないので
Error in unloadNamespace(package) :
namespace 'x' is imported by 'y' so cannot be unloaded
Error in library(x) : Package 'x' version n.nn cannot be unloaded
私は実際にソーススクリプトでunloadNamespaceを呼び出すことはありませんか?どのように私はアンロードを防ぐことができます。 scriptAでrequire()
を使用するだけで正常に動作しないのですか?
だから私の質問は以下のとおりです。
は私がしようとしてからスクリプトを避けるにはどうすればよい友好的な方法
をRスクリプトからオブジェクトを含めるための最良の方法Rスクリプトを調達するか、そこですパッケージxをアンロードするには?
既にスクリプトAで 'library(x)'を使用している場合は、スクリプトBで 'library(x)'を実行する必要はありません。 –
'library(x)'を呼び出しても、 1回または複数回。あなたのコードを投稿してください。 –