我正在尝试编写一个函数,将五个因子的向量与类似向量的列表进行比较。该函数必须计算不匹配的因子变量,并在发现不匹配少于2个的比较时停止并返回TRUE。如果找不到这样的匹配项,则必须返回FALSE。
我的功能如下:
recur_eval <- function(vector_input,data_comparison,counter=0,verifier=FALSE){
if(counter>nrow(data_comp)){return(FALSE)}
if(verifier=TRUE){return(TRUE)}
else {
counter_upd <- counter+1
mismatches<- sum(!(data_input==data_comparison[counter_upd]))
mismatch_check <- mismatches<2
recur_eval(data_input,data_comparison,counter=counter_upd,verifier=mismatch_check)
}
}
在大多数情况下,它运行良好,但是当它通过约1900行的比较数据而没有找到有效的匹配项时,它将返回:
Error in is_atomic(x) && is_scalar_atomic(y)
C stack usage 7957892 is too close to the limit
该功能有问题还是更多是系统限制问题?另外,我对递归函数还是陌生的,因此对函数的任何改进将不胜感激