首页 > 解决方案 > 函数说参数丢失,但我已经把它放在函数中,为什么它说它丢失了?

问题描述

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

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

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

有没有办法阻止它说论点在那儿时丢失了?

谢谢

标签: rfunctionarguments

解决方案


您没有为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.


推荐阅读