SP R пакет и пропущенные значения

Я пытаюсь создать пузырьковый график в R, используя пакет sp. В моих данных много пропущенных значений ("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]): пропущенные значения и значения NaN недопустимы, если" na.rm "равен FALSE".

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

2 ответа

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

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

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

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

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

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

bubble(subset(df, !is.na(grade)), "grade")
Другие вопросы по тегам