网站建设注意要求,郑州网站权重,重庆网领网站建设公司,神马seo排名关键词点击本文介绍在利用R语言的GD包#xff0c;实现自变量最优离散化方法选取与执行、地理探测器#xff08;Geodetector#xff09;操作时#xff0c;出现各类报错信息、长时间得不到结果等情况的解决方案。 在之前的文章R语言GD包基于栅格图像实现地理探测器与连续参数的自动离散… 本文介绍在利用R语言的GD包实现自变量最优离散化方法选取与执行、地理探测器Geodetector操作时出现各类报错信息、长时间得不到结果等情况的解决方案。 在之前的文章R语言GD包基于栅格图像实现地理探测器与连续参数的自动离散化https://blog.csdn.net/zhebushibiaoshifu/article/details/128538199中我们介绍了基于R语言的GD包实现地理探测器的详细方法——当时在进行前面这一篇文章所述操作的过程中我暂时没有遇到莫名运行报错、失败的问题而在后来依据同样的方法对另一批数据加以地理探测器处理时就遇见了各种各样的报错。
1 所遇问题 其中最为常见的一种报错信息如下图所示。 此外还有一种在网上也有很多用户遇到的报错信息。 除此之外我还先后遇到了其他类型的报错如下图所示。 还有这一种 接下来还有这一种 以及这一种 此外有时候在运行时还会出现很久都得不到结果的情况。如下图所示我当时需要对多个文件夹内的栅格图像文件分别加以地理探测器操作为了方便了解程序运行进度就添加了一些输出语句而此时发现对于某些文件夹的数据在进行地理探测器代码的运行时其会在一个地方一直卡住也不报错但是也不会继续往下进行。 2 解决方案 经过无数次的重复、尝试终于找到了在利用R语言GD包进行地理探测器分析时出现各类报错、卡顿问题的大致解决方案——当然这里也提到了是“大致”的解决方案因为这里具体出错的原因我也不是很清楚并且每一种报错信息的问题所在也是不一致的因此不能保证大家在实践过程中按照这里给出的解决方法一定可以成功解决问题但是本文所给出的解决方案的思路大家还是可以适当参考、加以尝试的。 首先通过逐步骤运行代码发现几乎全部的问题都出在连续变量的最优离散化方法选取与执行这一步上而并不是后期的地理探测器具体分析步骤上。其次结合这无数次的重复总结出一些经验如下。
2.1 增大数据量 首先针对出现红色字体的报错问题发现只要数据量足够大几乎可以解决一切问题。在一开始第一次用GD包进行地理探测器分析时我当时的分析数据共有十几列行数高达几十万行而后来开始遇到这些报错问题的时候我的分析数据列数没有变但是样本数量变少了大概只有几千行少数甚至只有几百行。这个是行数也就是样本数量而对于列数同样是如此——在网上看到有用户增添了分析数据的变量数列数后同样可以消除报错情况。因此看来在数据量足够大时很多报错信息都不会出现而在数据量比较小的时候才有可能出现各类报错问题。因此如果条件允许建议大家先提升数据量试一下。
2.2 减少类别数量 其次同时发现有的时候将连续变量离散化参数中的discitv也就是类别的数量适当调小也会解决一些报错。如下图所示原本我的discitv参数设置的是c(7:8)而后运行代码出现红色的报错提示随后尝试将discitv参数设置为c(3:8)就可以正常运行不报错了。 当然这种问题多是我们自身数据导致的。如下图所示可以看到我这里某一列连续变量的值很多都是完全一样的那么在此时如果我们的样本数过少就可能导致这一个连续变量最多也只有2到3个不一样的数值此时我们在对其加以离散化的时候肯定也就只能分为2类或者3类了如果我们设置的discitv参数的最小值大于这个变量可以分出的最大类别数那么这里自然就会报错。此外发现有的时候运行很久但是都得不到结果似乎也和这个类别的数量设置的太大有关系。 因此大家可以通过适当减少分类的类别数量的方法尝试解决报错、长时间得不到结果问题。
2.3 修改可选离散化方法 同时也发现有些离散化方法在执行过程中会出现某种类型的报错。如下图所示我在运行地理探测器时出现报错随后不断调整discmethod参数经过不断尝试发现只要将自然间断点法natural这个选项去掉那么就可以正常运行了。 因此大家可以通过不断修改待选择的离散化方法的手段尝试解决报错问题。
2.4 用单步骤函数 此外如果大家只需要执行地理探测器中的某一项单独分析例如只需要进行分异及因子探测那么如果遇到报错的情况可以尝试不要用GD包一步就实现地理探测器的那个gdm()函数改用单步骤函数例如先用optidisc()函数执行连续变量的自动离散化随后执行gd()函数获得q值。通过这种方法我们可以缩小报错的范围知道具体是哪一句代码或者哪一个部分的分析出现了错误方便我们更好地开展错误排除工作。 以上就是我总结出利用R语言的GD包实现地理探测器操作时不同的报错、运行很久得不到结果的解决方案大家在遇到类似的问题时可以参考这里提到的方法逐一加以尝试。如果实在是不行大家可以考虑更换其他方式实现地理探测器分析例如基于Excel实现地理探测器大家可以参考Geodetector软件下载、地理探测器的应用实践与结果解读https://blog.csdn.net/zhebushibiaoshifu/article/details/124526189还可以基于R语言中的geodetector包大家可以参考R语言geodetector包基于栅格图像实现地理探测器操作https://blog.csdn.net/zhebushibiaoshifu/article/details/128484786。
欢迎关注疯狂学习GIS