R Biogeo pkg:as.double(y)出错:无法强制输入' S4'到'' double'类型的向量

时间:2016-10-08 22:06:57

标签: r

我通常非常擅长搞清楚错误信息,只要它不需要太多查看底层代码,但我对处理空间数据非常陌生,并且无法解决这个问题。出。

我正在使用 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(在开始时取消点,我没有足够的声誉来发布链接),并尝试直接从教程中直接复制和粘贴使用此功能的不同示例。

希望这不仅仅是因为我没有喝足够的咖啡 - 我花了很多时间试图解决这个问题,我希望有人可以提供帮助。

谢谢! 利兹

1 个答案:

答案 0 :(得分:3)

行号是指https://github.com/cran/biogeo/blob/master/R/pointsworld.R

处的代码

在第37-40行中,我指定函数应来自sp包(例如sp::spatialPoints)。与我先前的评论相反,之前的任何内容都不需要改变。 sp函数的导入方式似乎有问题(??)。我将此标记为已回答,即使导入sp函数是真正的问题,但我不知道如何解决此问题(只需要学习!)。