R - Использование dplyr, DT и Shiny для создания таблицы данных на карте - PullRequest
0 голосов
/ 03 октября 2018

Мой код

server <- function(input, output) {
  subsetdata = reactive ({
  newdata = popdatamerged[popdatamerged$`A` %in% input$'B',]
  return((newdata))
})

output$map = renderLeaflet({ 
  leaflet() %>%
  addTiles()
})

observe({
  leafletProxy('map') %>%
  clearMarkerClusters %>%
  addMarkers(data= subsetdata(), lng = ~Long, lat = ~Lat, 
             clusterOptions = markerClusterOptions(zoomToBoundsOnClick = TRUE, spiderfyOnMaxZoom = FALSE))
})

output$mytable = DT::renderDataTable({
  subsetdata() %>%
    group_by_(~CityCountry) %>%
    summarize_("D" = sum(~D), "E" = sum(~E), "F" = sum(~F), na.rm=TRUE)
})

Ошибка, которую я получаю при выводе (это карта), находится под заголовком «Таблица данных»

invalid 'type' (language) of argument

Я уверен, что этоисходя из краткой части dplyr.Элементы D, E и F заполнены либо 0, либо 1.

Реактивные поднаборы не отображают D, E и F в виде 0 и 1?

Изменить Я хочу добавитькод ниже работает вне функции сервера, используя popdatamerged

popdatamerged() %>%
    group_by_(~CityCountry) %>%
    summarize_("D" = sum(~D), "E" = sum(~E), "F" = sum(~F), na.rm=TRUE)

1 Ответ

0 голосов
/ 03 октября 2018

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

Указанные ниже данные правильно интегрированы в карту.Таблица данных содержит список всех уникальных CityCountry, а затем суммирует D, E и F для каждой CityCountry.

Спасибо за просмотр.

server <- function(input, output) {
  subsetdata = reactive ({
  newdata = popdatamerged[popdatamerged$`A` %in% input$'B',]
  return((newdata))
 })

output$map = renderLeaflet({ 
  leaflet() %>%
  addTiles()
})

observe({
  leafletProxy('map') %>%
  clearMarkerClusters %>%
  addMarkers(data= subsetdata(), lng = ~Long, lat = ~Lat, 
         clusterOptions = markerClusterOptions(zoomToBoundsOnClick = TRUE, 
         spiderfyOnMaxZoom = FALSE))
})

  observe({
    datatabledata = DT:: datatable ({
      subsetdata() %>%
        dplyr:: group_by_(~CityCountry) %>%
        dplyr:: summarize( "D" = sum(D), "E" = sum(E), "F" = sum(F))
})

output$mytable = DT:: renderDataTable(datatabledata)})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...