我无法发布我的闪亮应用程序

时间:2018-03-08 18:04:04

标签: r shiny

我想发布我的应用程序(有效)。我正在尝试通过单击发布按钮添加它(我在shinnyapps.io中有帐户)。我在部署控制台中收到错误:“错误:pkg-config找不到gtk + 2.0。 错误:包 cairoDevice 的配置失败 *删除 / usr / local / lib / R / site-library /cairoDevice “并在控制台中:”错误:HTTP 404 GET https://api.shinyapps.io/v1/applications/295881 找不到“。我的应用程序如下:

UI:

    install.packages("shinydashboard")
    library(shinydashboard)
    library(shiny)
    install.packages("rpart")
    install.packages("rpart.plot")
    library(rpart)
    library(rpart.plot)
    install.packages("rattle")
    library(rattle)
    library(RColorBrewer)
    library(googleVis)



ui <- dashboardPage(  

  dashboardHeader(title = "Decision tree"),
  dashboardSidebar(width = 300, hr(),

    sidebarMenu(id="tab",
      menuItem("Home", tabName = "dashboard", icon = icon("home")),
      menuItem("Application", tabName = "app", icon = icon("leaf",lib="glyphicon"),
               menuSubItem( fileInput("file", "Choose database",
                                      multiple = TRUE,
                                      accept = c("text/csv",
                                                 "text/comma-separated-values,text/plain",
                                                 ".csv")), icon = icon("hand-o-right")),

               menuSubItem(uiOutput('choose_y'), icon = icon("hand-o-right")),
               menuSubItem(uiOutput('choose_x'), icon = icon("hand-o-right")),
               menuSubItem(actionButton(inputId ='tree', label = 'Generate tree'), icon = icon("hand-o-right"))

               ),

      menuItem("Power-off", tabName = "power-off", icon = icon("power-off"),
               menuSubItem(uiOutput('poweroff')))


    )    

  ),


  dashboardBody(


    tabItems(
      tabItem(tabName = "dashboard"),

      uiOutput("clear"),

      tabItem( tabName ="app"),

      tabItem(tabName = "power-off")

    )
  )
)

服务器:

server<-function(input, output, session) {


  filedata <- reactive({
    infile <- input$file
    if (is.null(infile)) {
      return(NULL)
    }
    read.csv(infile$datapath)
  })


    output$clear <- renderUI({
    infile <- input$file


     tabsetPanel(id = "tabs",tabPanel("Instruction", tableOutput("intr"), fluidRow(uiOutput("dash"))),tabPanel("Data", tableOutput("table"),fluidRow(uiOutput("view"))),tabPanel("Data analysis", tableOutput("sum"), 
     fluidRow(plotOutput('tree_plot', height = "650px", width="550px"),verbatimTextOutput('tree_summary'))))

    })


    output$dash <- renderUI({
      tabItem(tabName = "w", 
              fluidRow(
                column(12, offset = 1,
                       titlePanel(
                         p(strong("Instrukcja"), 
                           br(),
                           em("Działanie aplikacji krok po kroku"))),
                       tags$h4("Poszczególne zakładki:"),
                       tags$li("Home"),
                       tags$div(column(12, offset=0.10,
                                       "Zakładka zawiera instrukcję urochmienia aplikacji.")),
                       tags$li("Application"),
                       tags$div(column(12, offset=0.10,
                                       "Zakładka służy do wygenerowania drzewa decyzyjnego.")),
                       tags$div(column(12, offset=0.10,
                                       "1. Proszę wybrać bazę danych - przykład: 'iris.csv'. W razie niewybrania bazy domyślnie
                                       tworzone jest drzewo dla wbudowanego zbioru iris.")),
                       column(4, offset=0.10,
                              tags$img(height = "80%", width = "80%", src = "baza danych.jpg"),
                              br()),
                       tags$div(column(12, offset=0.10,
                                       "2. Następnie proszę wybrać zmienną niezależną - przykład: 'Species'.")),
                       column(4, offset=0.10,
                              tags$img(height = "80%", width = "80%", src = "zmnzal.jpg"),
                              br()),
                       tags$div(column(12, offset=0.10,
                                       "3. Proszę zaznaczyć checkboxy z odpowiednimi predykatorami - poniżej przykładowe:")),
                       column(4, offset=0.10,
                              tags$img(height = "50%", width = "50%", src = "predyk.jpg"),
                              br()),
                       tags$div(column(12, offset=0.10,
                                       "4. Proszę kliknąć przycisk generowania raportu:")),
                       column(4, offset=0.10,
                              tags$img(height = "50%", width = "50%", src = "gen.jpg"),
                              br())),
                column(12, offset=1,
                       tags$li("Power-off"),
                       tags$div(column(12, offset=0.10,
                                       "Zakładka służy do zamknięcia aplikacji.")
                       )



                )))
    })


    output$view <- renderTable({
       df <-filedata()

          if(!is.null(input$file)) {
           return(head(df))}

           else{
              return(head(iris))
            }

    })


  observeEvent(input$file, {
      updateTabsetPanel(session = session, inputId = "tabs", selected = "Data")
  })

  observeEvent(input$tree, {
       updateTabsetPanel(session = session, inputId = "tabs", selected = "Data analysis")
  })


  output$choose_y <- renderUI({
    if(!is.null(input$file)) {
      df <-filedata()}
      else {
       df<-iris}

    is.numeric <- sapply(df, FUN = is.numeric)
    y_choices <- names(df)[is.numeric]
    selectInput('choose_y', label = 'Choose Target Variable', choices = y_choices)
  })


  output$choose_x <- renderUI({
    if(!is.null(input$file)) {
      df <-filedata()}
    else {
      df<-iris}

    x_choices <- names(df)[!names(df) %in% input$choose_y]
    checkboxGroupInput('choose_x', label = 'Choose Predictors', choices = x_choices)
  })


    observeEvent(input$tree, {
    if(!is.null(input$file)) {
      df <-filedata()}
    else {
      df<-iris}


    set.seed(387890)
    los <- sample(1:nrow(df),
                  floor(.7*nrow(df)), 
                  replace = F)
    df_train <- df[los, ]
    df_test <- df[-los, ]

    form <- paste(isolate(input$choose_y), '~', paste(isolate(input$choose_x), collapse = '+'))
    tree_fit <- eval(parse(text = sprintf("rpart(%s, data = df_train)", form)))


    output$tree_summary <- renderPrint(summary(tree_fit))
    output$tree_plot<- renderPlot({
      plot(tree_fit)
      text(tree_fit)
      fancyRpartPlot(tree_fit)
    })
  })




  output$poweroff <- renderUI({
    stopApp()
  })

}

0 个答案:

没有答案