Как избежать нежелательного сопоставления аргументов?

Предположим, я пишу такую ​​функцию в R:

fun1 <- function(x,...,simplify=TRUE,sort=TRUE) {
   # do something here ...
}

В функции ... предполагается ряд выражений, которые оцениваются в определенных средах. Однако иногда возможно, что само выражение simplify=FALSE или sort=FALSE предназначено для ..., а не для аргументов fun1.

Из некоторых пакетов я узнал, что автор избегает использования потенциальных конфликтов между возможными именованными значениями для ... и существующими именами аргументов. Поэтому они пишут функцию следующим образом:

fun1 <- function(.data, ..., .simplify = TRUE, .sort = TRUE) {
  # do something here ...
}

Это не решает проблему, но позволяет избежать многих потенциальных конфликтов, если предположить, что типичный ввод данных не будет часто использовать .data, .simplify и .sort в выражении.

Как лучше всего решить или обойти эту проблему?


person Kun Ren    schedule 06.07.2014    source источник