Как изменить значения NA на NULL в листовой карте хороплета? - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь отобразить категориальную переменную, которая имеет значения NA.Я хотел бы, чтобы значения NA выглядели прозрачными на карте, но они кажутся черными.

library(sf)
library(leaflet)
library(tidyverse)

demo(nc, ask = FALSE, echo = FALSE)

# Add arbitrary factor column

nc <- nc %>% 
  mutate(
    factor_col = rep(c("A", "B", "C", "D", NA),20)
  )


factpal <- colorFactor(topo.colors(4), nc$factor_col, na.color = NA)
previewColors(factpal, unique(nc$factor_col))

leaflet(nc) %>%
  addPolygons(stroke = FALSE, smoothFactor = 0.2, fillOpacity = 1,
              color = ~factpal(factor_col))

Похоже, что палитра верна

enter image description here

Но когда я отображаю карту, значения NA вместо этого отображаются черными.

enter image description here

Любая помощь будет в значительной степениоценили.Спасибо

1 Ответ

0 голосов
/ 06 февраля 2019

Вот несколько хакерский способ сделать это, но он работает.Вы можете добавить функцию для fillOpacity, которая возвращает 0 для NA значений и 1 для всех остальных.

factop <- function(x) {
  ifelse(is.na(x), 0, 1)
}

leaflet(nc) %>%
  addPolygons(stroke = FALSE, smoothFactor = 0.2, fillOpacity = ~factop(factor_col),
              color = ~factpal(factor_col))
...