2017-05-09 5 views
0

私は光り輝くアプリでrhandsontableのいくつかの奇妙な動作を観察しました。この単純な例では、何らかのイベントが発生した場合にdata.framereactiveValues要素に割り当てています。データはrhandsontableに表示されます。私はテーブルのいくつかのエントリを変更する場合でも、機能hot_to_rはで失敗します。seq.defaultでエラー:引数「length.out」は長さ1光沢のあるrhandsontableを使用しているエラー

のものでなければならない不思議なエラーは、私がirisを使ったらどうなるではなく、私がiris[1:50, ]を使用したとき、それは同一でなければなりません。誰かがこのアイデアをどのように修正するのですか?

actionButtonをクリックする前values$dataはまだNULLある別のエラーがあります。私はこのことを認識してんだけど、これは問題には関係ありません。)

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) 
+0

エラーは、データを転置したことに起因すると思います。チェック: 't(頭(虹彩))'。なぜあなたは転置して、テーブルの出力を適応させるのですか? – BigDataScientist

+0

私が実際に使っているdata.frameは1行しか持っていないので、テーブルの出力がより良く転置したように見えます。これは、テーブルの横に他のui要素が必要なときに、列のデザインに適しています。 – needRhelp

+0

変更されたデータセットは 'as.data.frame(do.call(rbind、input $ table $ data))' – HubertL

答えて

1

@BigDataScientistが何かに上でありますcolnames(t(iris))NULLであり、colnames(t(iris[1:50,]))はそうではありません。それは私には謎ですが、そのヌルネスを防ぐことはあなたの問題を解決するはずです。 rhandsontableへの呼び出しで何かを使用すると、そのトリックを行う必要があります。使用:

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

私のために働いた。

関連する問題