Каков стандартный способ установки путей по умолчанию для аргументов функции в R-пакетах? - PullRequest
0 голосов
/ 08 сентября 2018

Установка значений по умолчанию для функций R проста, например,

myfunction = function(x, k=42, c=1){
    result = x*x + k - c
    return(result)
}

Здесь по умолчанию k=42, c=1 и x являются обязательными аргументами.

Я создаю пакет R, в котором я хотел бы, чтобы аргументы были файлами по умолчанию. (В этом случае это могут быть либо переменные, загруженные с помощью файлов .rda, либо фактические текстовые или CSV-файлы.)

Чтобы указать путь к файлу в inst/extdata, в документации рекомендуется использовать следующее:

http://r -pkgs.had.co.nz / inst.html

Например, чтобы найти inst / extdata / mydata.csv, вам нужно позвонить system.file ("extdata", "mydata.csv", package = "mypackage")

Каков рекомендуемый способ создания аргументов функции по умолчанию для определенного файла?

Я думаю, что прямая ссылка на файлы была бы не лучшим подходом, например

do_something_with_data = function(file=system.file("extdata", "mydata.csv", package = "mypackage")){
    data.table::fread(file)
    ...
}

Другим подходом может быть установка всех таких аргументов на NULL, а затем использование аргументов по умолчанию, если больше ничего не используется:

do_something_with_data2 = function(file=NULL){
    if (is.null(file)){
        file = system.file("extdata", "mydata.csv", package = "mypackage")
    }
    ...
}
...