R函数参数-我是否可以要求对其中一个(但不是两个)进行预测?
在R中,可以通过为参数指定默认值来设置具有可选参数的函数。例如,如果我的参数是x且y=0,则函数需要x的输入。如果给定y,它将使用y的输入,但如果没有给定y的值,它将设置y=0 有时我至少需要两个参数中的一个,但如果输入不正确,获取这两个参数可能会很危险R函数参数-我是否可以要求对其中一个(但不是两个)进行预测?,r,function,parameter-passing,logical-operators,xor,R,Function,Parameter Passing,Logical Operators,Xor,在R中,可以通过为参数指定默认值来设置具有可选参数的函数。例如,如果我的参数是x且y=0,则函数需要x的输入。如果给定y,它将使用y的输入,但如果没有给定y的值,它将设置y=0 有时我至少需要两个参数中的一个,但如果输入不正确,获取这两个参数可能会很危险 作为我思考的一个例子,考虑数据集可能有“移位”列(AM、PM、夜晚-一个因素)和一天中的时间。如果我得到了一天中的某个时间,那么我就可以计算班次,而获得该参数的值是不必要的。如果我把轮班作为输入,那么我就不需要一天中的时间。我想知道事件发生的大
作为我思考的一个例子,考虑数据集可能有“移位”列(AM、PM、夜晚-一个因素)和一天中的时间。如果我得到了一天中的某个时间,那么我就可以计算班次,而获得该参数的值是不必要的。如果我把轮班作为输入,那么我就不需要一天中的时间。我想知道事件发生的大致时间,所以我需要一条或另一条信息。不幸的是,当我得到两个输入时,可能存在不匹配-输入时间可能是上午8点,输入移位可能是下午移位。这是个问题
是否有办法在函数参数(在函数定义中)中配置此要求(获取班次或时间,但不获取两者),或者我必须将两者都指定为可选参数并在函数中进行检查(即至少一个或另一个,但不匹配)?否,您不能在函数签名中执行此操作 你的选择是:
foo
不是NULL
,则忽略此参数”您不能在函数签名中执行此操作。正如您已经说过的,您必须将这两个参数都指定为可选参数,并在函数选项三中进行检查:如果您不想要0个参数,也不想要2个参数,那么听起来您想要1个参数。给它一个更通用的名称,适当地编写文档,并编写函数代码以区分不同之处。使用OP的示例,调用参数
worktime
,如果它是POSIX
对象,则它是一天中的某个时间,您可以计算班次。如果它是一个字符串或因子,那么按照描述解析它。