Мне нужна помощь в отображении R кодирования - PullRequest
0 голосов
/ 07 сентября 2018

Вот мой код 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 Ответ

0 голосов
/ 17 сентября 2018

Проблема в том, что вы используете в 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)

Выход:

graphs

...