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")