Wie kann ich einen Plot von rhandsontable mit hochgeladenen Daten aktualisieren, ohne zuerst in die Tabelle zu klicken?

Ich erstelle eine glänzende App mit rhandsontable, damit der Benutzer die Werte in der Tabelle bearbeiten und dann den entsprechenden Plot mithilfe einer Aktionsschaltfläche aktualisieren kann. Ich möchte auch, dass sie eine Datei hochladen können, die dann die Tabelle auffüllt und dann den Plot aktualisiert.

Wie im Moment habe ich es geschafft, dem Benutzer das Hochladen einer Datei zu ermöglichen, die den Handheld-Tisch ausfüllt, aber damit die Aktionsschaltfläche den Plot aktualisiert, müssen sie zuerst in die Tabelle klicken und die Eingabetaste drücken.

Ich möchte, dass sie den Plot aus einer hochgeladenen Datei aktualisieren können, ohne in die Tabelle klicken und die Eingabetaste drücken zu müssen. Weiß jemand, wie das geht?

Möglicherweise hat es mit der Eingabe von $ Inhalten und der Ausgabe von $ Inhalten zu tun, die nicht synchron sind, wie im folgenden Link beschrieben, aber ich bin mir nicht sicher:

https: //github.com/jrowen/rhandsontable/blob/master/vignettes/intro_rhandsontable.Rmd#shin

Beispiel für eine CSV-Datei, die derzeit hochgeladen werden würde:

Currency   Values
EUR            10
GBP            20
CAD             5

Mein Code bisher:

library(shiny)
library(rhandsontable)

empty_mat = matrix(1,nrow = 3, ncol = 1)
curr_names = c("EUR","GBP","CAD")
empty_dat = cbind.data.frame(curr_names,empty_mat)
names(empty_dat) = c("Currency","Values")


ui = fluidPage(sidebarLayout(
    sidebarPanel(
      fileInput('file1', 'Choose CSV File'),
      rHandsontableOutput('contents'),
      actionButton("go", "Plot Update")
    ),
    mainPanel(
      plotOutput("plot1")
    )
))

server = function(input, output) {

  indat <- reactive({
    inFile <- input$file1
    if (is.null(inFile))
      return(rhandsontable(empty_dat))
    raw_input = read.csv(inFile$datapath, header=T)
    return(rhandsontable(raw_input))
  })

  output$contents <- renderRHandsontable({
    indat()
    })

  portfoliovals <- eventReactive(input$go, {
    live_data = hot_to_r(input$contents)[,2]
    return(live_data)
    })

  output$plot1 <- renderPlot({
    plot(portfoliovals()~c(1,2,3),type = "l")
  })

}


shinyApp(ui, server)

Update 27.09.16:

Der Autor hat freundlicherweise einen neuen Zweig des Pakets auf github gepusht, der es vorerst ermöglicht, dass der ursprüngliche Code ohne Probleme funktioniert. Sehenhttps: //github.com/jrowen/rhandsontable/issues/11 für mehr Details

Antworten auf die Frage(2)

Ihre Antwort auf die Frage