在R包中为函数参数设置默认路径的标准方法是什么?

时间:2018-09-07 21:16:11

标签: r function r-package default-arguments

设置R函数的默认值很简单,例如

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

默认情况下,k=42c=1x是必填参数。

我正在创建一个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")
    }
    ...
}

0 个答案:

没有答案