R Shiny列标准

时间:2017-12-27 20:41:16

标签: r csv shiny data.table

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

UI.R

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

Server.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)的数量?

最后我还没有开始编写binning部分,但它将与某个用户输入框有关,以获得bin的数量。我确定它并不困难,但我无法弄清楚如何为每一行创建一个盒子 - 这是为每一列动态创建的。

更新:我意识到我在这个问题中放了太多项目。答案很有帮助,我将分别发布其他问题。

1 个答案:

答案 0 :(得分:0)

正在处理闪亮的对象的类是错误的,你需要&#39;取消列表()&#39;某处的列表...使用下面的示例查找脚本中每个数据对象的类:

在你的服务器

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

并在您的用户界面中

textOuput('info')

并从那里进行调试。