2011-11-15 306 views
1

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

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错误(数据[,ZCOL]):遗漏值,如果‘na.rm’是假楠不允许”。

我不明白,因为我曾说过删除缺失值!我怀疑,SP有处理失踪,我已经错过了

+0

它们是“NA”还是“NA”缺失值? –

回答

3

试试这个(因为na.rm似乎并没有获得通过,以适当的功能)值略有不同的方法:

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

也有对“SpatialPointsDataFrame'对象的一个​​子集的方法:

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

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

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

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