У меня есть проблемы с реактивной таблицей в Shiny R

Если у вас есть окна, измените свой PATH так, чтобы он включал C:\Program Files\Java\jdk1.8.0_151\bin вместо C:\ProgramData\Oracle\Java\javapath

. Да, это может сломаться в обновлении или что-то еще, но, учитывая, что обновление сломало мою машину. .. По крайней мере, вы теперь контролируете.

Мое предположение заключается в том, что C:\ProgramData\Oracle\Java\javapath указывает на не-jdk jre, поэтому не удается найти javac-специфичные банки.

0
задан Igor Dvorzhak 20 March 2019 в 14:32
поделиться

1 ответ

Я настоятельно рекомендую вам прочитать эту статью об отладке.

В Shiny вы можете использовать функцию browser() в функциях reactive и render. Это должно помочь вам найти проблему (то есть: данные имеют ожидаемую структуру)

Кажется, проблема в функции aggregate: db_4()["date"] возвращает data.frame, где вам нужен вектор. [ 1111]

Решение:

library(shiny)

db <- data.frame(
  domain = letters[1:3],
  date = seq(
    from = as.Date("2019-01-01"),
    to = as.Date("2019-06-01"),
    by = "1 months"
  ),
  value = runif(12)
)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("domain", "Domain", choices = unique(db$domain)),
      dateRangeInput("daterange", "Date", 
                     min = min(db$date), max = max(db$date),
                     start = min(db$date), end = max(db$date))  
    ),
    mainPanel(
      tableOutput("table2")      
    )
  )
)

server <- function(input, output, session) {
  db_4 <- reactive( { 
    subset(db, 
      db$domain %in% input$domain &
      db$date<=input$daterange[2] & 
      db$date>=input$daterange[1]
    )
  })

  output$table2 <- renderTable( {
    req(db_4()) # Don't render table when db_4() is NULL

    # Uncomment next line to check if everything goes as expected
    #browser()
    aggregate(
      data.frame(value = db_4()$value), 
      by=list(date = as.factor(db_4()$date)), 
      sum
    )
  })
}

shinyApp(ui, server)

Также я настоятельно рекомендую поделиться кодом вашего минимального примера, включая несколько фиктивных данных, чтобы его можно было мгновенно скопировать. Это увеличит шансы того, что кто-то ответит.

0
ответ дан GyD 20 March 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: