函数说缺少参数,但我已经把它放在函数中了,为什么它说缺少参数?

Function says the argument is missing but I've put it in the function, why does it say it's missing?

这可能是一个非常简单的问题,我遗漏了一些东西,但我有一个函数:

交通<-功能(灯光、汽车、道路、事故)

在这个函数中,我只使用了 cars 参数,没有使用灯光、道路和事故,但仍然需要作为我稍后将执行的代码的其他部分的参数。 当我尝试 运行 我的函数时,它说缺少 'cars' 没有默认值,但它就在那里。该函数在 cars 是第一个参数时有效,但我需要按照我给定的顺序输入参数。

有没有办法阻止它在参数存在时说缺少参数?

谢谢

您没有为 cars(或其他参数)提供默认值,因此您需要在调用该函数时提供值。如果它们未在您的函数的当前版本中使用,则您提供的值可以是任何值:NAlist()NULL 是显而易见的选项。

x <- Traffic(NA, myCars, NA, NA)

或者,您可以在函数定义中提供默认值,例如

Traffic <- function(lights=NA, cars, roads=NA, accidents=NA)

然后用

调用它
x <- Traffic(cars=myCars)

如果你只是用

调用你的函数
x <- Traffic(myCars)

然后对象 myCarslights 参数关联,而不是 cars