R:交互式会话中的测试功能

时间:2014-04-09 13:24:18

标签: r function arguments

我不确定它是否可行,但我希望能够获取函数的默认参数值并测试它们和函数中的代码而不必删除逗号(这在以下内容中特别有用)有很多争论的情况)。

实际上,我希望能够在向函数发送参数时使用逗号,但是如果我复制并粘贴参数并自行运行它们,则不能使用逗号。

例如:

foo=function(
    x=1,
    y=2,
    z=3
  ) {

  bar(x,y,z)
}

现在测试代码块之外的函数片段,复制并粘贴

x=1,
y=2,
z=3

bar(x,y,z)

但是这会产生错误,因为在x=1

之后有一个逗号

也许我不是在问正确的问题。如果这很奇怪,调试函数的首选方法是什么?

请注意,刚发布了近identical question in Julia

1 个答案:

答案 0 :(得分:2)

如果要以编程方式获取函数的参数及其默认值,可以使用formals

fxn = function(a, b, d = 2) {}
formals(fxn)
# $a
# 
# 
# $b
# 
# 
# $d
# [1] 2

我想如果你想将函数的每个参数的默认值存储到该名称的变量中(这是你在OP中要求的那个),那么你可以用{{{{ 1}}循环:

for

因此,对于没有默认值的参数,您需要在运行此代码后提供一个值(正如您所期望的那样)。对于具有默认值的参数,现在可以设置它们。