我正在开发一个R包,可在DESCRIPTIONS
文件
Imports:
dplyr,
ggplot2,
ncdf4
我有一个示例函数,我使用第三个依赖
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)
}
当我Build and Reload
包时,我运行该功能时,could not find function "nc_open"
。
但是,当我用ncdf4::nc_open
我应该在packagename::
前加上我在代码中使用的每个依赖项吗?或者我错过了什么?
通常,我希望从DESCRIPTIONS
安装所有依赖项,并且可以使用它的函数,而不需要每次都使用包前缀。
答案 0 :(得分:3)
或者:
ncdf4::nc_open(...)
或者:
importFrom(ncdf4, nc_open)
中添加一行,然后在您的代码中调用不带包的函数:nc_open(...)
您可以使用importFrom
来搜索该软件包中的所有内容,而不是为要导入的每个函数添加import(ncdf4)
行。
答案 1 :(得分:0)
最简单的方法和最正确的方法是直接从包中取出您的功能,而无需打开任何可能会消除某人当前环境的包裹。
试试这个:
xfile <- ncdf4::nc_open(ncfname)
它应该无冲突地访问您需要的内容。这是当前首选的方法,因为它留下了为用户找到的东西。它还使人们很容易知道他们去探索时会发生什么。