闪亮复选框输出的动态值(Server.r)

闪亮复选框输出的动态值(Server.r),r,shiny,checkboxlist,R,Shiny,Checkboxlist,编辑:完整代码 数据文件: 不确定如何在stackoverflow中共享数据文件。所以给了谷歌硬盘一个附件。如果有其他选择,请告诉我 我无法根据输入的csv数据在Shining应用程序中创建动态复选框过滤器。我需要用户输入数据文件(.csv)并使用该文件中的列“Country”在UI中显示为复选框过滤器。然而,我得到了错误 这是我的密码。我尝试了不同的方法,但没有用。请帮忙 服务器.R library(shiny) shinyServer(function(input, output) {

编辑:完整代码

数据文件: 不确定如何在stackoverflow中共享数据文件。所以给了谷歌硬盘一个附件。如果有其他选择,请告诉我

我无法根据输入的csv数据在Shining应用程序中创建动态复选框过滤器。我需要用户输入数据文件(.csv)并使用该文件中的列“Country”在UI中显示为复选框过滤器。然而,我得到了错误

这是我的密码。我尝试了不同的方法,但没有用。请帮忙

服务器.R

library(shiny)

shinyServer(function(input, output) {     

    data_attr <- reactive({
      file1 <- input$file_attr
      if(is.null(file1)){return()} 
      list(read.table(file=file1$datapath, sep=input$sep, header = input$header, stringsAsFactors = input$stringAsFactors))

    })

  countries <- reactive({
    if(is.null(data_attr()$Country)){return()}
    data_attr()$Country
  })

  output$CountryList <- renderUI({
    if(is.null(data_attr()$Country)){return()}
    checkboxGroupInput('show_vars', 'Country Filter',
                       as.list(countries))
  })

})
错误:

Listening on http://127.0.0.1:4017
Warning: Error in !: invalid argument type
Stack trace (innermost first):
    92: read.table
    91: <reactive:data_attr> [C:\Users\userName\Documents\dummt/server.R#8]
    80: data_attr
    79: renderUI [C:\Users\userName\Documents\dummt/server.R#18]
    78: func
    77: origRenderFunc
    76: output$CountryList
     1: runApp
监听http://127.0.0.1:4017
警告:出现错误!:无效的参数类型
堆栈跟踪(最里面的第一个):
92:读表
91:[C:\Users\userName\Documents\dummt/server.R#8]
80:数据属性
79:renderUI[C:\Users\userName\Documents\dummt/server.R#18]
78:func
77:origRenderFunc
76:产出$CountryList
1:runApp

您收到的错误是因为您的read.table
read.table(file=file1$datapath,sep=input$sep,header=input$header,stringsAsFactors=input$stringAsFactors)
input$sep
input$header
input$stringAsFactors
tha是未定义的UI输入元素,因此该值为空。现在我已经给出了这些的硬编码值。如果以后需要,可以定义UI元素

除此之外,我还修改了您的代码,以便您获得所需的输出。我为
input$file\u attr
添加了一个observeEvent,以便在上传文件后触发渲染UI

server <- shinyServer(function(input, output) {     
  data_attr <- reactive({
    file1 <- input$file_attr
    if(is.null(file1)){return()} 
    read.table(file=file1$datapath, sep=",",, header = TRUE, stringsAsFactors = FALSE)

  })

  countries <- reactive({

    if(is.null(data_attr()$Country)){return()}
    data_attr()$Country
  })


  observeEvent(input$file_attr, {
    output$CountryList <- renderUI({
      if(is.null(data_attr()$Country)){return()}
      checkboxGroupInput('show_vars', 'Country Filter',
                         countries())
    })

  }) 

})

server您能提供一个示例数据吗?。还提供一个代码来重现错误。使用此代码片段很难找出代码中的错误。在Google drive中提供了UI和服务器代码以及示例数据。希望能成功!谢谢!!他花了好几个小时努力解决这个问题。这个解决方案正是我想要的:)嗨,你能根据你给出的代码看一下下面的问题吗。这是一个不同的背景,所以作为一个单独的问题发布——谢谢!
server <- shinyServer(function(input, output) {     
  data_attr <- reactive({
    file1 <- input$file_attr
    if(is.null(file1)){return()} 
    read.table(file=file1$datapath, sep=",",, header = TRUE, stringsAsFactors = FALSE)

  })

  countries <- reactive({

    if(is.null(data_attr()$Country)){return()}
    data_attr()$Country
  })


  observeEvent(input$file_attr, {
    output$CountryList <- renderUI({
      if(is.null(data_attr()$Country)){return()}
      checkboxGroupInput('show_vars', 'Country Filter',
                         countries())
    })

  }) 

})