闪亮:从输入文件

时间:2015-05-06 15:14:44

标签: list unique shiny

我一直在尝试使用Shiny从我上传的文件中创建一个列表。我的文件(.csv)已上传,并显示与csv文件对应的表。但是,我有一个名为'Peptide.Sequence'的列,我想创建一个唯一名称列表,因为它包含几个重复项(从那里我希望能够为每个肽提供用户特定的值,所以第四,但这是另一项任务)。

我一直在尝试许多不同的方法,并在网上搜索(包括堆栈溢出)以获得答案。在这一点上,我希望能够提供一些关于如何继续前进的建议......

我一直收到错误:

  

错误:'arg'必须为NULL或字符向量

事先谢谢。

**ui.r**
library(shiny)

shinyUI(fluidPage(

  titlePanel("File Input"),
   sidebarLayout(
    sidebarPanel(
      fileInput("file", "Upload the file"), 

      checkboxInput(inputId = 'header', 
                    label = 'Header', 
                    value = TRUE),

      radioButtons(inputId = 'sep', 
                   label = 'Separator', 
                   choices = c(Comma=',',Semicolon=';',Tab='\t', Space=''), 
                   selected = ',')),


      uiOutput("pep"),



    mainPanel(
      uiOutput("tb")
    )

)))

**Server.r**
library(shiny)

shinyServer(function(input, output) {




  lc.ms <- reactive({
    file1 <- input$file

    if(is.null(file1)){return()} 

    read.table(file=file1$datapath, 
               sep=input$sep, 
               header = input$header)

  })


  output$filedf <- renderTable({

    if(is.null(lc.ms())){return ()}

    input$file
  })


  output$table <- renderTable({

    if(is.null(lc.ms())){return ()}

    lc.ms()

    })


  peptides <- as.list(unique(lc.ms$Peptide.Sequence))

  output$pep <- renderUI({

    selectInput(
      inputId = 'peptides',
      label = 'peptides',
      multiple = TRUE)

  })

outputOptions(output, 'pep', suspendWhenHidden=FALSE)

  output$tb <- renderUI({

    if(is.null(lc.ms()))
      h4("Waiting for file :)")

    else
      tabsetPanel(tabPanel("About file", tableOutput("filedf")),tabPanel("lc.ms", tableOutput("table")))
  })

1 个答案:

答案 0 :(得分:0)

您的单选按钮中有一个sintax错误(额外的)),您必须提供mainPanel参数。在这里你的ui.r

shinyUI(fluidPage(

  titlePanel("File Input"),
   sidebarLayout(
mainPanel(),
    sidebarPanel(
      fileInput("file", "Upload the file"), 

      checkboxInput(inputId = 'header', 
                    label = 'Header', 
                    value = TRUE),

      radioButtons(inputId = 'sep', 
                   label = 'Separator', 
                   choices = c(Comma=',',Semicolon=';',Tab='\t', Space=''), 
                   selected = ','),


      uiOutput("pep"),



    mainPanel(
      uiOutput("tb")
    )

        ))

))