sp R包和缺失值

时间:2011-11-15 04:00:31

标签: r method-missing

我正在尝试使用sp包在R中创建一个气泡图。我的数据有很多缺失值(“N / A”),气泡图似乎不喜欢它。

library(sp)
X<-runif(100, min=0, max=1000)
Y<-runif(100, min=0, max=1000)
grade<-c((rnorm(n=50,mean=30, sd=4)), (rep(NA, 50)))
df<-data.frame(X,Y, grade)
coordinates(df)<-~X+Y
bubble(df, "grade", na.rm=TRUE)

当我运行此代码时,我收到一条错误消息“quantile.default(data [,zcol])中的错误:缺少值,如果'na.rm'为FALSE则不允许NaN”。

我不明白,因为我已经说要删除缺失的值!!我怀疑sp有一个稍微不同的方法来处理我错过的缺失值

2 个答案:

答案 0 :(得分:4)

试试这个(因为na.rm似乎没有传递给正确的函数):

bubble(df[!is.na(df$grade), ], "grade")

“SpatialPointsDataFrame”对象还有一个子集方法:

bubble(subset(df, !is.na(grade)), "grade")

答案 1 :(得分:4)

如果您阅读帮助(气泡),您会看到没有na.rm参数。仅仅因为它适用于lm和glm并不意味着它可以在任何地方工作。请记住,R是由数百人编写的,并且没有普遍要求遵循na.rm始终有效的规则。

请注意,bubble有一个“...”参数 - 这将捕获你的'na.rm'并将其传递给xyplot - 但是它也没有na.rm参数。这并不重要,因为在它甚至考虑调用xyplot之前,错误是由泡沫中的代码引发的。

子集就是答案(已经解释过了)