Реактивная игра с г блестящей - PullRequest
0 голосов
/ 28 февраля 2020

Я относительно новичок в R, и мне интересно, как создать реактивный igraph в блестящем. Я пытаюсь создать блестящее приложение, которое анализирует данные Airbnb. В целом, я хочу визуализировать двудольную сеть, которая показывает связь между list_id квартиры и reviewer_id рецензента в интерактивном режиме.

Я попытался построить график на реактивном фильтре, который фильтрует данные на основе данных. по соседству (вход из пользовательского интерфейса). Сам график должен показывать связи между перечислением_данных на основе общих reviewer_ids (т. Е. Листинг A связан с листингом B, если у них есть хотя бы один общий рецензент).

Код, который у меня есть на данный момент:

#---------------UI----------
ui <- fluidPage(

  sidebarLayout(position = "right",
    sidebarPanel(h3("Input Parameters"),

                 selectInput("neighborhood.selection", "Select the neighborhood you want to display", 
                             c("Manhattan", "Brooklyn", "Queens", "Staten Island",
                               "Bronx")),
                 #textOutput("o.neighborhood.selection"),
                 #selectInput("vertex.selection", "Select the Vertex you want to display", 
                             #c("Reviewer ID" = 1, "Listing ID" = 2)),
                 ),
    mainPanel(h2("Overall Network Graph"),
              plotOutput("o.big.network")

              )
  ),
)

#-----------server----------

library(igraph)
library(shiny)
library(data.table)
library(rsconnect)
library(dplyr)

dt.merged <- readRDS("dt.merged.final.rds")
dt.merged$reviewer_id <- paste0("0", dt.merged$reviewer_id)
dt.merged <- dt.merged[1:500]

server <- function(input, output) {
dt.merged.reactive <- reactive({
  req(input$neighborhood.selection)
  filter(dt.merged,neighbourhood_group_cleansed %in% input$neighborhood.selection)
})

  all.listings <- dt.merged.reactive()[, list(name=unique(listing_id), type=TRUE)]
  all.reviewers <- dt.merged.reactive()[, list(name=unique(reviewer_id), type=FALSE)]  
  all.vertices <-   list(all.listings,all.reviewers)
  output$o.big.network  <- renderPlot({
    # Creating the graph
    g <- graph.data.frame(dt.merged.reactive()[, list(listing_id, reviewer_id)], directed=FALSE, vertices= all.vertices) 
  })
}

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