Как добавить и сгруппировать фильтры на листовой карте? - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть таблица данных, которая содержит столбцы [ID, Status, Lat, Lon, Price 0BR, Price 1BR, Price 2BR, Price 3BR].В настоящее время я сопоставляю идентификатор по широте / долготе на листовой карте и хочу отфильтровать по идентификаторам, которые имеют цену 0BR, 1BR, 2BR, 3BR.Стоит отметить, что идентификатор может иметь нулевые значения для любого из столбцов цены.

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

df <- read.csv(file="MPLS_Saturation_Map.csv", header=TRUE, sep=",")
getColor <- function(df) {
sapply(df$Status, function(Status) {if(Status == '80% Undersaturated') {"red"} else if(Status == '50% Undersaturated') {"orange"} else {"green"}
})}

icons <- awesomeIcons(
   icon = 'home',
   iconColor = 'black',
   library = 'ion',
   markerColor = getColor(df)
)

popup <- paste(
   "<strong>Rental ID: </strong>", df$Rental.ID, 
   "<br><strong>Total Units: </strong>", df$Units, 
   "<br><strong>Availability %: </strong>", df$Availability, 
   "<br><strong>Relative Price 0BR: </strong>", df$X0BR,
   "<br><strong>Relative Price 1BR: </strong>", df$X1BR,
   "<br><strong>Relative Price 2BR: </strong>", df$X2BR,
   "<br><strong>Relative Price 3BR: </strong>", df$X3BR,
   "<br><strong>Link: </strong>", df$Slug
)

pal <- colorFactor(c("orange", "red", "chartreuse3"),df$Status)

leaflet(df) %>% 
addTiles() %>%
addLayersControl(
    overlayGroups = c(if(length(df$X0BR)){"Studio"}, if(length(df$X1BR)){"1BR"}, if(length(df$X2BR)){"2BR"}, if(length(df$X3BR)){"3BR"}),
    options = layersControlOptions(collapsed = FALSE)) %>%
addLegend(pal = pal, title = '2018 Saturation Status', values = df$Status, opacity = 2, position = 'bottomright') %>%
addAwesomeMarkers(~Lon, ~Lat, icon = icons, popup = popup)

Первоначальные результаты, которые я показал для каждой цены в фильтре, но затем я добавил> if (length(df ​​$ X0BR)) {"Studio"} <и т. д., чтобы получить правильные метки фильтров ("Studio", "1BR", "2BR", "3BR").Теперь мне просто нужно отфильтровать набор данных на основе того, имеет ли ID цену в df $ X0BR, df $ X1BR, df $ X2BR и df $ X3BR. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...