пакет sp R и отсутствующие значения

Я пытаюсь создать пузырьковый график в R, используя пакет sp. В моих данных много пропущенных значений («Н/Д»), и пузырьковому графику это, похоже, не нравится.

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]): отсутствующие значения и NaN не разрешены, если «na.rm» имеет значение FALSE».

Я не понимаю, потому что я сказал удалить пропущенные значения!! Я подозреваю, что у sp есть немного другой метод работы с пропущенными значениями, которые я пропустил.


person LoveMeow    schedule 15.11.2011    source источник
comment
Являются ли они "NA" или NA пропущенными значениями?   -  person Roman Luštrik    schedule 15.11.2011


Ответы (2)


Вместо этого попробуйте это (поскольку na.rm, похоже, не передается правильной функции):

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

Существует также метод подмножества для объектов SpatialPointsDataFrame:

bubble(subset(df, !is.na(grade)), "grade")
person IRTFM    schedule 15.11.2011

Если вы прочитаете help (bubble), вы увидите, что параметр na.rm отсутствует. То, что он работает с lm и glm, не означает, что он будет работать везде. Помните, что R написан сотнями людей, и нет универсального требования следовать какому-то правилу, согласно которому na.rm всегда работает.

Обратите внимание, что у пузыря есть аргумент «...» — он поймает ваш «na.rm» и передаст его в xyplot, но у него также нет аргумента na.rm. Не то, чтобы это имело значение, так как ошибка выбрасывается кодом в пузыре еще до того, как он подумает о вызове xyplot.

подмножество - это ответ (как уже объяснялось)

person Spacedman    schedule 15.11.2011