簡體   English   中英

如何在R包中加載依賴項?

[英]How can I load dependencies in an R package?

我正在開發一個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安裝所有依賴項,並且它的功能可供使用而不需要每次都使用包前綴。

或者:

  • 使用它來自的包顯式地加上函數: ncdf4::nc_open(...)

要么:

  • 在你的NAMESPACE文件importFrom(ncdf4, nc_open)添加一行,然后在你的代碼中調用沒有包的函數: nc_open(...)

您可以使用import(ncdf4)來搜索該包中的所有內容,而不是為要導入的每個函數添加importFrom行。

最簡單的方法和最正確的方法是直接從包中提取您的功能,而無需打開任何可能會消除某人當前環境的包。

嘗試這個:

xfile <- ncdf4::nc_open(ncfname)

它應該無沖突地訪問您需要的內容。 這是當前首選的方法,因為它留下了為用戶找到的東西。 它還使人們可以輕松地了解他們去探索時會發生什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM