r语言 - 尝试在 KernSmooth 的 bkde2D 函数中设置 range.x 会导致"'to' must be a finite number"



我在使用KernSmooth的BKDE2D函数时似乎无法设置range.x。例如,以下所有尝试都会导致错误:

bkde2D(cbind((1:5),(1:5)),bandwidth=c(1,1),range.x=c(0,5))
bkde2D(cbind((1:5),(1:5)),bandwidth=c(1,1),range.x=c(c(0,5),c(0,5)))
bkde2D(cbind((1:5),(1:5)),bandwidth=c(1,1),range=c(c(0,5),c(0,5)))
bkde2D(cbind((1:5),(1:5)),bandwidth=c(1,1),range=c(0,5))

对于以上所有内容,结果为

Error in seq.default(a[1L], b[1L], length = M[1L]) :
  'to' must be a finite number

这也行不通:

bkde2D(cbind((1:5),(1:5)),bandwidth=c(1,1),range.x=c(0,5),range.y=c(0,5))

但是,没有尝试设置范围,没有报告错误:

bkde2D(cbind((1:5),(1:5)),bandwidth=c(1,1))

非常感谢

不幸的是,错误消息不是很有帮助。bkde2D功能的帮助页面说

range.x
一个包含两个向量的列表,其中每个向量包含x的最小值和最大值,以计算每个方向的估计值。

唯一的问题是将参数指定为 vector ,而不是 list 。以下应该有效

est <- bkde2D(cbind((1:5),(1:5)),bandwidth = c(1,1),range.x = list(c(0,5), c(0,5)))
contour(est$x1, est$x2, est$fhat)

相关内容

最新更新