在R中,可以通过为参数指定默认值来设置带有可选参数的函数。例如,如果我的参数是x并且y = 0,则该函数需要输入x。如果给出了y,它将使用y的输入,但是如果没有给出y的值,它将设置y = 0。
有时我至少需要两个参数之一,但是如果输入不正确,则同时获取两个参数可能很危险。
作为我正在考虑的示例,考虑数据集可能包含用于“班次”(“上午”,“下午”,“夜晚”-一个因素)和一天中的时间的列。如果我有一天的时间,则可以计算出班次,而不必获取该参数的值。如果我将班次作为输入,则不需要一天中的时间。我想知道事件在一天中的什么时间发生,所以我需要一条或另一条信息。不幸的是,当我同时获得两个输入时,可能会出现不匹配的情况-输入时间可能是8 AM,而输入班次可能是PM班次。那是个问题。
是否可以在功能参数(在功能定义中)中配置此要求(获取时间或获取时间,但不能同时获取),还是必须将两者都指定为可选参数并执行函数中的检查(即至少一个或另一个但不匹配)?
答案 0 :(得分:1)
不,您不能在函数签名中执行此操作。
您的选择是:
foo
不是NULL
,则忽略该参数”。