首页 > 解决方案 > 使用 kde2d 和 for 循环(MASS R 包)的带宽的负值或零值

问题描述

我正在尝试使用 kde2d(MASS 包)在列表中的多个数据帧上运行二维 kde。尝试运行循环时,我得到:

if (any(h <= 0)) stop("bandwidths must be strictly positive") 中的错误:缺少 TRUE/FALSE 需要的值。

有谁知道我为什么会收到这个错误?我在下面添加了示例数据作为循环内容的示例。

RTL_EOW DSL_SLS Avg_Wkly_Tmp PROXY_ID
8/27/2016 0 78.65940641 1
9/3/2016 2924 68.28091649 1
9/10/2016 2656 69.3189759 1
9/17/2016 5050 71.61575243 1 9/24/2016
4254 73.85357591 1
10/1/2016 5316 61.63126437 1
10/8/2016 5582 57.10903173 1
10/15/2016 5531 66.50587123 3 10/22/2016
5046 53.08352004 3 10/29/2016
8195 68.44048727 3 11/5/2016
5535 52.66686763 3
11/12/2016 6863 41.69310232 3
2016 年 11 月 19 日 7976 38.96718858 3

K <- for (i in 1:length(Q)) {
Q[[i]] <- kde2d(Q[[i]]$Avg_Wkly_Tmp, 
Q[[i]]$Dsnl_Sls, n = 25, lims 
c(min(Q[[i]]$Avg_Wkly_Tmp), 
max(Q[[i]]$Avg_Wkly_Tmp), 
min(Q[[i]]$Dsnl_Sls), max(Q[[i]]$Dsnl_Sls)))
}

标签: rfor-loopkdemass

解决方案


我们没有 Q,但它看起来至少有一个元素的范围为零。


推荐阅读