Многоточие R игнорирует переданные аргументы - PullRequest
0 голосов
/ 27 августа 2018

Я написал простую функцию, которая принимает аргумент по умолчанию и также использует многоточие (...):

myFun <- function(resize = NULL, ...) {
    dots <- list(...)
    str(dots)
}

Однако, когда я пытаюсь передать аргумент, который похож наАргумент по умолчанию, он не распознается:

> myFun(res = 1)
 list()
> myFun(resi = 2)
 list()

Однако, если я использую другое имя, оно работает нормально:

> myFun(abc = 2)
List of 1
 $ abc: num 2

> myFun(resize = 3, res = 1)
List of 1
 $ res: num 1

Предназначено ли это поведение?Если да, есть ли правильный способ решения этой проблемы (кроме переименования аргументов)?

> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.5.1 tools_3.5.1    yaml_2.2.0  

1 Ответ

0 голосов
/ 27 августа 2018

Это предполагаемое поведение, как указано в определении языка R.Аргументы функции совпадают частично.

https://cran.r -project.org / doc / manual / R-lang.html # Аргументы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...