0

rhandsontable在一个闪亮的应用程序中观察到了一些奇怪的行为。在这个简单的示例中,如果发生某些事件,我将 a 分配data.frame给一个reactiveValues元素。然后数据显示在rhandsontable. 但是,当我更改表的某些条目时,函数hot_to_r失败并显示:seq.default 中的错误:参数“length.out”的长度必须为 1

奇怪的是,该错误仅在我使用时发生iris,但在我使用时不会发生iris[1:50, ],这应该是相同的。有人有想法,如何解决这个问题?

(在单击之前values$data还有另一个错误。我知道这一点,但这与问题无关。)NULLactionButton

library(shiny)

ui <- fluidPage(
  actionButton("click", "click"),
  rHandsontableOutput("table")
)

server <- function(input, output, session) {

  values <- reactiveValues(data = NULL)

  observeEvent(input$click, {
    values$data <- iris # with iris[1:50, ] no error appears
  })

  output$table <- renderRHandsontable({
    rhandsontable(t(values$data))
  })

  observe({
    if (!is.null(input$table$changes$changes)) {
      table_data <- hot_to_r(input$table)
      print(table_data)
    }
  })

}

shinyApp(ui, server)
4

1 回答 1

1

@BigDataScientist 正在做某事,colnames(t(iris))NULL,而colnames(t(iris[1:50,]))不是。这对我来说是个谜,但防止空值应该可以解决您的问题。在调用中使用某些东西rhandsontable应该可以解决问题。使用

rhandsontable(data.frame(t(values$data)))

为我工作。

于 2017-05-11T22:20:09.130 回答