conditional inclusion of arguments in a function call

后端 未结 2 2072
忘掉有多难
忘掉有多难 2021-02-20 10:49

I want to call a function but depending on the situation I might call it with extra arguments or not. Here is a simple example:

FUN <- function(arg1 = \"defau         


        
2条回答
  •  盖世英雄少女心
    2021-02-20 11:08

    One solution is to use do.call after building a list with the proper arguments:

    do.call(FUN, c(list(arg1 = x1, arg2 = x2),   # unconditional args
                   list(arg3 = x3)[use.arg3]))   # conditional arg
    

    And it generalizes well to multiple conditions:

    do.call(FUN, c(list(arg1 = x1)[use.arg1]     # conditional arg
                   list(arg2 = x2)[use.arg2]     # conditional arg
                   list(arg3 = x3)[use.arg3]))   # conditional arg
    

提交回复
热议问题