闪亮:从输入文件创建一个唯一列表

Shiny: Creating an unique list from input file

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

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

我一直收到错误消息:

ERROR: 'arg' must be NULL or a character vector

先谢谢了。

**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")))
  })

您的单选按钮中存在语法错误(额外的 )),您必须提供 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")
    )

        ))

))