我有一个向量arguments
,其中一些值为NA
。我想按顺序将这些参数传递给以下函数:
myFunction(argument = ifelse(!is.na(arguments[i]),
arguments[i], NULL))
这样做可以使它在arguments[i]
不是NA
时取值,否则取默认值NULL
。但这会产生一个错误。
如果有任何区别,被问到的函数是optmatch
包中的match_on()
函数。被问到的参数是caliper
,因为我想在只有一个可用的卡尺时提供一个卡尺(即当卡尺向量中的值不是NA
时)。错误信息如下:
Error in ans[!test & ok] <- rep(no, length.out = length(ans))[!test & :
replacement has length zero
In addition: Warning message:
In rep(no, length.out = length(ans)) :'x' is NULL so the result will be NULL
NA
检查呢? - Vivek Kalyanarangan!is.na(arguments)
。此外,ifelse()
是矢量化的,所以我不确定为什么要使用索引..是否在循环中使用ifelse?您需要提供更多上下文。但是,在R中将NA更改为NULL并没有什么意义。 - Elin