我通常非常擅长搞清楚错误信息,只要它不需要太多查看底层代码,但我对处理空间数据非常陌生,并且无法解决这个问题。出。
我正在使用 Biogeo软件包与RStudio v.0.99.903,R版本3.2.4(2016-03-10),Windows 10(编辑:升级到最新版本的R没有摆脱错误)。 我目前正在完成教程,同时尝试将其应用到我自己的数据中。功能代码和相关数据在github上: https://github.com/cran/biogeo (教程叙述在docs文件夹中 - 我在开头,试图在第2页制作地图)。
使用 pointsworld功能时出现以下错误:
Error in as.double(y) : cannot coerce type 'S4' to vector of type 'double'
我在Stack Overflow上找到的相关问题(一个没有答案,一个我不太懂的):
(1)R: Error in as.double(y) : cannot coerce type 'S4' to vector of type 'double'-- raster data (2)Self-authored package: load plot method for spatialPolygonsDataFrame
这是我的相关代码(来自教程):
library(biogeo)
data(dat) # Access the species dataset
data(world) # Access the country boundaries
a <- pointsworld(world, dat) # basic plotting
我还尝试使用自己的数据子集,并收到相同的错误。
这些是我目前打开的所有软件包:
search()
[1] ".GlobalEnv" "package:dplyr" "package:maptools" "package:biogeo" "package:raster"
[6] "package:sp" "tools:rstudio" "package:stats" "package:graphics" "package:grDevices"
[11] "package:utils" "package:datasets" "package:methods" "Autoloads" "package:base"
typeof()
返回"S4"
以获取&#34; world&#34;和"list"
for dat
class()
返回"SpatialPolygonsDataFrame" attr(,"package") "sp"
以获取&#34; world&#34;和"data.frame"
for&#34; dat&#34;
我希望我没有忽略一些简单的事情 - 我已经输入并重新输入了代码,尝试使用不同的数据集,尝试使用建议的(在教程中)地图/边界文件... www.thematicmapping.org /downloads/world_borders.php(在开始时取消点,我没有足够的声誉来发布链接),并尝试直接从教程中直接复制和粘贴使用此功能的不同示例。
希望这不仅仅是因为我没有喝足够的咖啡 - 我花了很多时间试图解决这个问题,我希望有人可以提供帮助。
谢谢! 利兹
答案 0 :(得分:3)
行号是指https://github.com/cran/biogeo/blob/master/R/pointsworld.R
处的代码在第37-40行中,我指定函数应来自sp包(例如sp::spatialPoints
)。与我先前的评论相反,之前的任何内容都不需要改变。 sp函数的导入方式似乎有问题(??)。我将此标记为已回答,即使导入sp函数是真正的问题,但我不知道如何解决此问题(只需要学习!)。