2017-09-18 12 views
0

は、私は、これはDESCRIPTIONSファイルRパッケージの依存関係を読み込むにはどうしたらいいですか?

Imports: 
    dplyr, 
    ggplot2, 
    ncdf4 

で利用可能であるRのパッケージを開発していると私は、私はパッケージをBuild and Reloadとき、私は第三の依存

testFun <- function(file, lat, long){ 
    ncfname <- file.path(file,fsep = .Platform$file.sep) 
    xfile <- nc_open(ncfname) #Opens the NetCDF file 
    lat <- ncvar_get(xfile, 'lat') #Extracts all latitudes 

    ...Calculations 

    return(XYZ) 
} 

を使用する例の機能を持っている、と私関数could not find function "nc_open"を実行します。

しかし、それは私がncdf4::nc_open

と交換したときに動作します私はコードで使用すべての依存関係にpackagename::の前に付けることになっているだろうか?または私は何かを逃している?

通常、すべての依存関係はDESCRIPTIONSからインストールしたいと思いますし、毎回パッケージのプレフィックスを必要とせずに使用できる機能があります。

答えて

0

最も簡単な方法と最も正しい方法は、誰かの現在の環境を壊す可能性のあるパッケージを開かずにパッケージから直接関数を引き出すことです。

はこれを試してみてください:

xfile <- ncdf4::nc_open(ncfname) 

それはあなたが競合することなく、必要なものをアクセスする必要があります。これは現在の推奨されている方法です。なぜなら、ユーザーのために見つけたものを残してしまうからです。また、人々が探索しなければならないことを知ることも容易になります。

+0

はい.....それが正しい方法です。 – sconfluentus

+0

可能であれば、私はすぐにこれについての参考にしたいと思います。どのドキュメンテーションでも利用できますか?安全ではあるものの、扱いにくいようです。 – maximusdooku

+0

Hadley WIckamのサイトhttp://r-pkgs.had.co.nz/namespace.htmlを参照してください。ほとんどのパッケージ(多くのデータベースパッケージのように、DBIを超えて機能するもの) 。 – sconfluentus

1

次のいずれかの

  • 明示的にそれはからのパッケージと機能を接頭辞:あなたの名前空間ファイルimportFrom(ncdf4, nc_open)、その後、あなたのコード内での行を追加します。

    • ncdf4::nc_open(...)

    かパッケージなしで関数を呼び出します。nc_open(...)

インポートするすべての機能にimportFrom行を追加するのではなく、import(ncdf4)を使用して、そのパッケージのすべてをスナップすることもできます。

+0

私は明示的な接頭辞はコードの明快さに役立つかもしれないと思います。だから私はそれを簡単に保ち、それに固執します。別のリストの輸入品を保守したくないです。 – maximusdooku

+0

すべての関数に対して 'importFrom()'は必要ありません。パッケージごとに1つだけです: 'importFrom(ncdf4、nc_open、nc_close、nc_foo、nc_bar)'。 –

+0

ああ、ありがとう!役に立つと思う..... – maximusdooku

関連する問題