返回

r-闪亮的应用程序没有显示错误或警告

发布时间:2022-09-07 18:49:06 348
# 数据# 信息

首先,我想说,这是我第一天使用R Shiny package,所以如果我问了一些非常琐碎的问题,请耐心等待。

我试图创建一个用户界面,它支持用户选择显示类型(均值的箱线图或散点图),变量(取决于数据集),以及组(也取决于数据集)。

如果有人能给我一些反馈,告诉我哪里可能出错,我将不胜感激。基本上,R没有给我任何错误信息,但当我运行应用程序时,它没有显示绘图。

我写道:

library(shiny)
library(tidyverse)
#source("helpers.R")
namel<-function (vec){
    tmp<-as.list(vec)
    names(tmp)<-as.character(unlist(vec))
    tmp
}

# Define UI for application that draws a histogram
ui <- fluidPage(
    # Application title
    titlePanel("Breast DCIS Visualization"),
    # inputs
    sidebarPanel(
        uiOutput("variable"), # depends on dataset ( set by output$variable in  server.R)
        uiOutput("group"),
        selectInput("plot.type", "Plot Type:", 
                     choices=c("Boxplot"="boxplot", "Scatter Plot"="scatterplot"))
    ),
    
    # outputs
    mainPanel(
        h3(textOutput("caption")),
        uiOutput("plot") # depends on input 
    )
 )



# Define server logic required to draw a histogram
server <- function(input, output) {
    #update variable and group based on dataset
    dataset <- bind_rows(NORMAL, DCIS, IDC)
    dataset$label <- as.factor(dataset$label)
    
    output$variable <- renderUI({ 
        var.opts <- namel(colnames(dataset))
        selectInput("variable","Variable:", var.opts) # update UI                
    }) 
    
    output$group <- renderUI({ 
        group.opts <- namel(levels(dataset$label))   
        selectInput("group","Group:", group.opts) # update UI                
    }) 
    
    output$caption<-renderText({
        switch(input$plot.type,
               "boxplot" = "Boxplot",
               "scatterplot" = "Scatter Plot")
    })
    
    output$plot <- renderUI({
        plotOutput("p")
    })
    
    #plotting function using ggplot2
    output$p <- renderPlot({
        plot.obj <- list()
        plot.obj$data <- dataset 
        plot.obj$variable <- with(plot.obj$data, get(input$variable)) 
        plot.obj$group <- with(plot.obj$data, get(input$group)) 
        
        #dynamic plotting options
        plot.type <- switch(input$plot.type,
                          "boxplot"     =   geom_boxplot(),
                          "scatterplot" =   geom_point()
        )
        
        require(ggplot2)
        #plotting theme
        .theme<- theme(
            axis.line = element_line(colour = 'gray', size = .75), 
            panel.background = element_blank(),  
            plot.background = element_blank()
        )    
        if(input$plot.type=="boxplot"){ 
            p <- ggplot(plot.obj$data,
                      aes(x = plot.obj$group,
                          y = plot.obj$variable,
                          fill = as.factor(plot.obj$group)))+ plot.type
            
        } else {
            
            p <- ggplot(plot.obj$data, 
                      aes(x = plot.obj$variable,
                          fill = as.factor(plot.obj$group),
                          group = as.factor(plot.obj$group))) + plot.type
        }
        
        p <- p + labs(
            fill = input$group, x = "", y = input$variable) + .theme
        print(p)
    })  
}

# Run the application 
shinyApp(ui = ui, server = server)
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
下一篇
泛型.带GATs的functor/monad实现 2022-09-07 17:36:01