Мне нужна помощь в отображении R кодирования
Вот мой код R для построения графика RR:
# Display posterior means of RR(relative risks)
va$RRmean <- end4$summary.fitted.values[, 1]
library(classInt)
breaks.qt2 <-classIntervals(va$RRmean, n=7, style="quantile", intervalClosure="right")
va.palette<-brewer.pal(9, name="OrRd")
spplot(va, "RRmean", col="transparent", col.regions=va.palette, at=breaks.qt2$brks)
Тем не менее, есть один округ, который отображается просто белым цветом (хотя он имеет наибольшее значение среди других округов). Что-то не так с кодом? Я проверил фактическое значение, и это действительное числовое значение.
1 ответ
Проблема в том, что вы используете в ssplot
в качестве числового значения аргумента цвет начинает "перерабатываться". Вам нужно использовать трансформированные RRmean
от classIntervals
функция Без этого вы увидите результат, аналогичный указанному на левом графике ниже. Пожалуйста, смотрите код ниже (с набором данных о количестве убийств в Филадельфии):
library(rgdal)
library(sp)
library(ggplot2)
library(RColorBrewer)
library(classInt)
dsn <- "Philly3"
philly <-readOGR(dsn=dsn, layer = "Philly3") #
pal <- brewer.pal(9, "OrRd")
breaks_qt <- classIntervals(philly$HOMIC_R, n = 7, style = "quantile")
br <- breaks_qt$brks
offs <- 0.0000001
br[1] <- br[1] - offs
br[length(br)] <- br[length(br)] + offs
philly$HOMIC_R_bracket <- cut(philly$HOMIC_R, br)
g1 <- spplot(philly, "HOMIC_R", col.regions = pal, main = "Philadelphia homicide, with numerical value")
g2 <- spplot(philly, "HOMIC_R_bracket", col.regions = pal, main = "Philadelphia homicide, with categorical values")
library(gridExtra)
grid.arrange(g1, g2, nrow = 1)
Выход: