从物种分布模型中去除发生点

时间:2016-04-05 15:15:42

标签: r

我在R中使用dismo包并执行物种分布模型。我想删除错误位置的几个点。我使用了识别工具,它告诉我出现数据中的点数,但是我不确定用什么代码来删除这些点。 我要删除的一个要点是302339。

sparrow= gbif("ammodramus", "maritimus*", geo=FALSE)
sparrow
names(sparrow)
dim(sparrow)
sparrow <- subset(sparrow, !is.na(lon) & !is.na(lat))
library(maptools)
data(wrld_simpl)
plot(wrld_simpl, xlim=c(-40,-10), ylim=c(20,100), axes=TRUE, col="light      yellow")
points(sparrow$lon, sparrow$lat, col="orange", pch=20, cex=0.75) 
points(sparrow$lon, sparrow$lat, col="red", cex=0.75)
identify(sparrow$lon, sparrow$lat)

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,你可以给出&#34; [&#34;因为rowname和j值作为列名称给出:sparrow[ 30439, 'lat'],你得到[1] 57.2833,这显然是(最终)出现的情节中的异常值。当我按照自己的建议时,在重复绘图时,点(纽芬兰海岸外)消失了。

然后执行:

sparrow[ 302339, 'lat'] <- NA

...并重新绘制,这一点消失了。你也可以执行:

sparrow <- sparrow[ -'302339', ]  # which removes that line 

请注意,使用带有字符值的减号在[.data.frame<-的i位置成功,但在j位置不会成功删除列。并且还要注意,rownames实际上是字符值,尽管它们是数字显示,但它们仍然匹配为字符。删除异常后,您会看到最后6行有这些标识符:

 rownames(tail(sparrow))
[1] "32855" "32904" "32951" "32953" "32972" "32993"