2016-03-29 12 views
7

snowfallパッケージで利用できるように並列化を使用する必要があるRパッケージを開発しています。 snowfallは、ggplot2,data.tableなどの他のパッケージと同じではありません。説明ファイル、名前空間ファイル、および関数自体のインポート引数には、snowfall,、snowが含まれています。私はこの機能にアクセスしようとすると、私は次のエラーを取得する:降雪をカスタムRパッケージにインポートする

Error in sfInit() : could not find function "setDefaultClusterOptions"

sfInit機能は、それがsfInitのネストされた使用方法に関連していると言うnostart/nostop引数を持っているようだが、それはいないようですどちらかといえば私のためのトリックをする。

実際のコード自体は、(私はエラーを取得する場合である)いくつかsfExport sおよびsfLibrary SをsfInitを使用し、sfLapply

解決策:をインポートセクションからDesciptionファイルのdependsセクションに移動すると動作するようです。私はなぜか分からない。

+3

これらの操作を行うシステムセットアップ、バージョン、実際のコードはありますか? pkgのように見えます:雪が正しく取り付けられていません。 –

+1

説明ファイルに雪があり、名前空間にインポート(雪)が見えます。私はまた関数に# '@import snowを追加しました。私は何かしなければならないことがありますか? – TheComeOnMan

+1

ラッパーコード自体でsnowを明示的に呼び出すと、パッケージは正常に動作します。 – TheComeOnMan

答えて

2

setDefaultClusterOptionsは、snowパッケージの機能です。あなたもそれをインポートする必要があります。

+1

私は説明ファイルに雪があり、名前空間にインポート(雪)が見えます。私はまた関数に# '@import snowを追加しました。私は何かしなければならないことがありますか? – TheComeOnMan

+1

ラッパーコード自体でsnowを明示的に呼び出すと、パッケージは正常に動作します。 – TheComeOnMan

+3

パッケージ全体をインポートするのではなく、パッケージに必要な機能だけをインポートします。 roxygen2を使用する場合は '#@importFrom snow setDefaultClusterOptions'を使用してください – Thierry

3

パッケージを添付するときに「依存」にパッケージを含めると、パッケージが名前空間に依存するパッケージも添付されます。

このサイトのその他の相違点と相違点については、other questionsで詳しく説明しています。

{snowfall}の説明を見ると、それは{snow}に依存することがわかります。降雪の著者は私たちがしていないことを知っており、働くためには{snow}をグローバル検索パスに付ける必要があります。私は上記のリンク先の質問に対する答えは、トップのトップの注意点である事実...だから

... if your package relies on a package A which itself "Depends" on another package B, your package will likely need to attach A with a "Depends directive.

This is because the functions in package A were written with the expectation that package B and its functions would be attached to the search() path.

では、あなたの場合には、それだけので、すべての{snowfall}欲求が{snow}であり、あなたがそれを提供するために起こっていることが起こります。しかし、より正確な行動が{snowfall}に直接依存する可能性があります。

関連する問題