我在integrate
中重现了R
中的警告。
r <- list()
r$t <- 1:4
xsq <- function(x,r_obj){
r_obj$t == x
return(x^2)
}
integrate(f=xsq,0,1, r_obj = r)
第四行在这个玩具示例中没有任何功能(我是从需要该行的更复杂功能构建的)。问题是上面的代码提供了与此行相关的警告:
0.3333333 with absolute error < 3.7e-15
Warning message:
In r_obj$t == x :
longer object length is not a multiple of shorter object length
请注意,评估任何值的xsq
都不成问题,例如xsq(1, r_obj = r)
没有发出任何警告。当r$t
少于4个元素时,例如r$t <- 1:3
,问题就消失了。但是,来自?integrate
f
R函数采用数字第一个参数并返回相同长度的数字向量。
在我的理解中xsq
就是这样做的。我哪里出错或为什么会收到警告?