在R:为什么函数可以使用的每个参数都没有完整的列表?

Tim*_*kan 1 arguments r function

我使用R大约3年,其中一个主要优点(在我看来)是stackoverflow和类似网站上可以找到的广泛的问题和帮助.

缺少一件事,让我烦恼的是函数可以使用的每个参数的完整列表(以及这些参数的可能值).例如:在R文档中列出了所有"主要"参数,在许多情况下,文档说"...传递给其他方法或从其他方法传递的其他参数".我怎么知道"......"的含义是什么?

当在stackoverflow上搜索获得我想要的分析结果的方法时,我有时偶然发现这些额外的参数在许多情况下非常有用.找到隐藏在其他用户答案中的这些参数仍然需要很长时间.有时我会使用一种解决方法,如果我知道一些额外的函数参数,那就不必要了.

还有其他人经历过同样的事情吗?

(很难提及例子,但我记得第一次使用传单函数时遇到了麻烦.)

蒂姆

Ben*_*min 5

最直接的答案是我们经常不知道可能想传递给哪些参数....事实上,这是...争论的关键,是不要求我们知道可以传递给它的参数.

例如,考虑print基础R中的泛型.它被定义为

print(x, ...)
Run Code Online (Sandbox Code Playgroud)

那么可以传递给哪些论点...

print.factor 定义

print(x, quote = FALSE, max.levels = NULL,
      width = getOption("width"), ...)
Run Code Online (Sandbox Code Playgroud)

print.table 定义

print(x, digits = getOption("digits"), quote = FALSE,
      na.print = "", zero.print = "0", justify = "none", ...)
Run Code Online (Sandbox Code Playgroud)

请注意,for factortableobjects 的print方法不共享相同的参数.实际上,每个print方法都可以使用不同的参数集来定义.然后,R使用对象的类来确定要应用的参数集print.

当开发人员创建新print方法时,CRAN要求所有新方法至少包含与泛型相同的参数.所以每个print方法都有参数x....

我怎么知道哪些论据可以接受...

首先,阅读并遵循文档.在glm,您发现该...参数接受"形成默认control参数"的参数.这引用了control参数,然后引用该glm.control函数.开场?glm.control显示参数epsilon,maxittrace.

再如,在ggplot2geom_line,文档指出...参数传递给layer函数.使用?layer,看看有什么论据是可用的.

如果文档只是指定"到其他方法",那么您可能正在查看为不同类型的对象分配不同行为的方法.