2017-05-31 197 views
1

我有一個表單應用程序,可以保存輸入的信息以及點擊圖表上的位置到CSV。我無法讓它輸出此點擊輸入的x/y座標。我可以得到完整的plot_click列表輸出 但這包含逗號,因此導致CSV中的困難。我已經嘗試了每一種類型的反應表達的,但不能得到輸入$ plot_click $ X任何NULL之外寫點擊xy座標csv

代碼如下:UI

shinyUI(
    fluidPage(
    titlePanel("click on location"), 
div(
    textInput("name", "Name", ""), 
    actionButton("submit", "Submit", class = "btn-primary") 
), 
div(plotOutput("plot1", click = "plot_click"), 
    verbatimTextOutput("info") 
))) 

服務器

fieldsAll <- c("name", "plot_click") 
plotx <- c(0,100) 
ploty <- c(0,70) 
responsesDir <- file.path("responses") 
epochTime <- function() { 
    as.integer(Sys.time()) 
} 
humanTime <- function() format(Sys.time(), "%Y%m%d-%H%M%OS") 

shinyServer (function(input, output, session) { 


    formData <- reactive({ 
    data <- sapply(fieldsAll, function(x) input[[x]]) 
data <- c(data, timestamp = epochTime()) 
data <- t(data) 
data 
    }) 
    saveData <- function(data) { 
fileName <- sprintf("%s_%s.csv", 
        humanTime(), 
        digest::digest(data)) 

    write.csv(x = data, file = file.path(responsesDir, fileName), 
      row.names = FALSE, quote = TRUE) 
    } 

    # action to take when submit button is pressed 
    observeEvent(input$submit, { 
    saveData(formData()) 
}) 
    output$plot1 <- renderPlot({ 
plot(plotx, ploty) 
    }) 

output$info <- renderText({ 
    paste0("x=", input$plot_click$x, "\ny=", input$plot_click$y) 
}) 

    }) 

任何幫助將不勝感激! Conor

回答

0

你快到了。稍微修改你的反應表達式可以給你x座標。

formData <- reactive({ 
     data <- sapply(fieldsAll, function(x) unlist(input[[x]][1])) 
     data <- c(data, timestamp = epochTime()) 
     data <- t(data) 
     data 
     }) 
+0

謝謝,這正是我們所需要的。 –

+0

如果您的查詢已解決,可以接受答案嗎? – SBista