Преобразование фрейма данных в блестящем сервере в соответствии с выбранным входом - PullRequest
0 голосов
/ 09 апреля 2019

пару недель назад я только что узнал о блестящем, и теперь я пытаюсь создать приложение, которое отображает некоторую графику, но до этого я застрял в преобразовании фрейма данных в зависимости от входных данных выбора пользовательского интерфейса и получении ошибки: объект типа 'закрытие »не может быть подмножеством.

В моем фрейме данных есть 5 разных категорий, в каждой из которых 2 хранилища.Каждый из этих магазинов тратит деньги на средства массовой информации (телевидение, радио, Интернет), и есть записи, когда и в какие магазины типа средств массовой информации вкладывались деньги.Я уже сделал выбор ввода, где вы выбираете категорию с магазинами, а затем у вас есть фрейм данных с наблюдениями выбранного магазина.

Вот мои сделанные данные:

library(shiny)
library(dplyr)

year <- sample(seq(as.Date('2017/01/01'), as.Date('2018/03/31'), by="day"), 800, TRUE) %>% as.character()
media <- sample(c("TV", "RADIO", "INTERNET"), 800, TRUE)
expenditure <- sample(50:150, 800, TRUE)
category <- rep(1:5,160)
store <- rep(11:20,80)
dff <- cbind(store, category) %>% unique() %>% as.data.frame()
data <- data.frame(year,media,expenditure,category,store)

И есть блестящий код:

runApp(list(
  ui = basicPage(
    sidebarPanel(
      selectInput("kat", "Category", choices = unique(dff$category) , selected = unique(dff$category)[1]),
      tags$hr(),
      selectInput("brand", "Brandas", choices = dff$store[dff$category == unique(dff$category)[1]], 
                  multiple = TRUE)
    ),
    mainPanel(
      tableOutput("var"),
      uiOutput('table')

    )
  ),
  server = function(input, output, session) {

    observe({
      kat <- input$kat
      updateSelectInput(session, "brand", choices = dff$store[dff$category == kat])
    })
    dff2 <- data

    filterData2 <- reactive({
      data.frame(dff2[which(dff2$category %in% input$kat & dff2$store %in% input$brand),])
    })

    frame <- renderTable({ filterData2() })
    output$var <-  frame

    frame1 <- reactive(frame[frame$store %in% input$brand,]$expenditure)
    output$table <- frame1
  }
))

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

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