簡體   English   中英

構建一個R包

[英]Building an R package

我目前正在構建一個R包。

我希望提供示例數據。 我知道package.skeleton()創建的數據目錄以及如何加載數據集等。

問題是,我設計了函數來讀取文件作為輸入-原因是那些使用我的軟件包的人通常會加載大型數據集。 因此,我的函數逐行讀取文件。

我在讓程序包通過檢查階段時遇到問題,因為我不清楚如何使函數讀取示例數據文件,而不是先加載它們,然后將結果表/數據幀作為參數傳遞。

我希望這很清楚。

提前致謝!

編輯###回復評論

我的函數將文件作為參數,即

example <- function(test_file){

test <- readLines(testFile)

....Do something to each line ...

}

我不清楚如何使用R文檔代碼將文件(而不是數據框)傳遞給函數。

我在文檔中的測試代碼如下

\examples{
library(new_package)
tester <- test(testfile=somefile)
}

由於R期望的數據結構類似,因此無法執行:

data(somedataset)
testet <- example(somedataset)

該錯誤是由於R CMD檢查過程無法找到和讀取我的文件而導致的。 有沒有一種方法可以構造我的包,以便函數的參數是文件而不是數據結構,如果是,那么如何在文檔的示例代碼中將此文件作為參數傳遞。

這個示例函數呢:

#' Example function
#' @param test_file file path
#' @examples \dontrun{
#' example(system.file('example_data.txt', package='package_name'))
#' }
example <- function(test_file) {
    test <- readLines(testFile)
    # whatever you wish to do
}

詳細說明:

  • 將示例數據集從data目錄(如果我對的話,將保留沒有自定義函數加載的數據集)移動到例如inst目錄,這最終會將您的示例文件放置在已安裝包的目錄中,
  • 在文檔中使用system.file引用演示文件,
  • 並使用\\dontrun指定示例,以消除由於自動運行而導致的所有警告,但仍顯示在文檔中(盡管上面的命令可以,但恕不恕我直言)。

我了解您在大數據方面的困境(我是一位生物學家,正在處理相同的問題),所以我建議不要運行該示例。 這將允許您通過檢查,但是您還應該添加一點注釋(作為注釋或功能文檔中的其他地方),以指示為什么這些示例不是直接運行的示例。

\examples{
\dontrun{
# Throw in your examples here
 }
}

這應該使您能夠通過檢查(至少可以解決此問題),並使軟件包可安裝。

暫無
暫無

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

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