【发布时间】:2014-06-12 12:38:36
【问题描述】:
Am R 新手。我编写了一个使用 3 个参数的函数。在我的代码中,我使用其中一个参数来帮助我从目录中读取文件。目录中有 100 个文件。当我将所有函数参数传递给它并指定我要读取的文件时,代码工作正常。
functionX(var1, var2, id) and functionX(var1, var2, id = 1:100)
## Below is the first line of code for me that uses "id".
sub.file.names <- file.names[id] ### Get file names
奇怪的是,当“id”的值最初没有传递给函数(或设置为 1:100 默认值)时,代码似乎无论如何都读取了所有文件名。即使“id”的值从未建立,它也会这样做。
当用户在执行函数时省略将值传递给“id”时,就好像 R 以某种方式将下面的两个函数视为相同...例如,functionx("var1", "var2") ## 而没有传递任何 id 变量
functionx(var1, var2, id)
functionx(var1, var2, id = 1:100)
任何关于为什么会发生这种情况的指示都会很高兴知道。我觉得答案很明显,但一直无法弄清楚。
【问题讨论】:
-
可能是
if(missing(id)) do something.` -
您可能需要提供更多关于您所做工作的详细信息 - 您是否定义了两个版本的
functionX()?如果是这样,第二个将覆盖第一个。
标签: r function parameters