Я хотел бы добавить средство просмотра белка в мое блестящее приложение. После загрузки скрипта мое приложение больше не отвечает ни на один из моих входов. Ниже приведена упрощенная версия моего приложения с использованием набора данных mtcars.
Мой код:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = "Example"),
dashboardSidebar(
sidebarMenu(id = "sidebarmenu",
selectizeInput("sample2", "Sample: ",
choices = c("cyl", "mpg", "disp", "hp")))),
dashboardBody(
fluidRow(
box(title="3D Structure", width = 6, status="primary", solidHeader =TRUE,
uiOutput("structure_3d"))),
fluidPage(
box(status="primary", solidHeader = FALSE, align = "center",
DT::dataTableOutput("table")))))
server <- function(input, output, session) {
mtcars2 <- reactive({
mtcars2 <- mtcars
return(mtcars2)
})
output$table <- DT::renderDataTable({
mtcars2 <- mtcars2()
mtcars2 <- subset(mtcars2, select = c(input$sample2))
table <- DT::datatable(mtcars2, rownames = FALSE)
})
output$structure_3d <- renderUI({
tabPanel("3D Structure",
tags$head(tags$script(src="http://3Dmol.csb.pitt.edu/build/3Dmol-min.js")),
tags$div(
style="height: 400px; width: 700px: position: relative;",
class='viewer_3Dmoljs',
'data-pdb'='2POR',
'data-backgroundcolor'='0xffffff',
'data-style'='cartoon'))
})
}
shinyApp(ui = ui, server = server)
Как мне заставить приложение снова реагировать на мои входные данные?
EDIT:
Я также пытался переместить скрипт в пользовательский интерфейс, но таблица по-прежнему не отвечает на ввод:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = "Example"),
dashboardSidebar(
sidebarMenu(id = "sidebarmenu",
selectizeInput("sample2", "Sample: ",
choices = c("cyl", "mpg", "disp", "hp")))),
dashboardBody(
fluidRow(
box(title="3D Structure", width = 6, status="primary", solidHeader =TRUE,
tags$head(tags$script(src="http://3Dmol.csb.pitt.edu/build/3Dmol-min.js")),
tags$div(
style="height: 400px; width: 700px: position: relative;",
class='viewer_3Dmoljs',
'data-pdb'='2POR',
'data-backgroundcolor'='0xffffff',
'data-style'='cartoon'))),
fluidRow(
box(status="primary", solidHeader = FALSE, align = "center",
DT::dataTableOutput("table")))))
server <- function(input, output, session) {
mtcars2 <- reactive({
mtcars2 <- mtcars
return(mtcars2)
})
output$table <- DT::renderDataTable({
mtcars2 <- mtcars2()
mtcars2 <- subset(mtcars2, select = c(input$sample2))
table <- DT::datatable(mtcars2, rownames = FALSE)
})
}
shinyApp(ui = ui, server = server)