【问题标题】:R Shiny column ordinalityR闪亮的列序数
【发布时间】:2018-06-08 11:09:47
【问题描述】:

我有一段代码允许上传 CSV 文件,将其转换为数据表,然后在主面板的 UI 中重新显示。收集列/变量名称并将其发送回 UI 侧边栏,并带有一个复选框以激活它们以进行其他计算。我想在侧边栏中有三列,第一列是动态拉取的列名,第二列应该是在每列中找到的当前唯一值的数量,第三列是我想要将它们放入的类别数.

UI.R

fluidRow(
  column(6, checkboxGroupInput("dsnamesGrp","Variable name")),
  column(3, textOutput("output.dsordsGrp")),
  column(3, numericInput("assignBin","Bins", 12))
),

服务器.R

dsnames <- c()
ordinality <- c()

observeEvent(input$datafile, ({
  dsnames <- names(data_set())
  cb_options <- list()
  cb_options[dsnames] <- dsnames
  updateCheckboxGroupInput(session, "dsnamesGrp", label = "Variable name", choices = cb_options, selected = "")

  ordinality <- lapply(data_set, function(x)length(unique(x)))
  ord_values <- list()
  ord_values[ordinality] <- renderDataTable(ordinality)
  output$dsordsGrp <- ord_values

  })
)

output$choose_columns <- renderUI({

  if(is.null(input$dataset))
    return()
  colnames <- names(contents)
  checkboxGroupInput("columns", "Choose columns", choices  = colnames, selected = "")
})

我遇到了三个问题。一,如何收集每列的唯一值数量并将它们作为列名旁边的列表传递给 UI?我以为我可以模仿在这里找到的用于收集列名的代码,但我得到了:

Warning: Error in as.vector: cannot coerce type 'closure' to vector of type 'list'

我用来完成此任务的算法来自R Count unique values for every column

第二,如何添加序数(Ord)的列标题以及目标箱数(Bins)?

最后,我什至还没有开始编写分箱部分,但这与使用某种用户输入框来获取分箱数量有关。我确信这并不难,但我不知道如何为每一行创建一个框 - 即动态地为每一列创建一个框。

更新:我意识到我在这个问题中放了太多东西。答案很有帮助,其他问题我会单独发布。

【问题讨论】:

    标签: r csv shiny data.table


    【解决方案1】:

    正在闪亮处理的对象的类是错误的,您需要在某处“取消列出()”列表...使用以下示例查找脚本中每个数据对象的类:

    在您的服务器中

    output$info <- renderText({
       print(unlist(data_object))
    })
    

    在你的用户界面中

    textOuput('info')
    

    并从那里调试它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 2021-06-21
      • 2014-04-11
      • 1970-01-01
      • 2014-10-02
      • 2017-04-04
      相关资源
      最近更新 更多