我有一个表单应用程序,可以将键入的信息以及在绘图上单击的位置保存为CSV。我无法输出此点击输入的x / y坐标。我可以获得完整的 plot_click 列表输出 但这包含逗号,因此导致CSV难度大。我已尝试过各种类型的反应式表达式但除了NULL input $ plot_click $ x 之外无法获得任何内容
代码如下: 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)
})
})
任何帮助将不胜感激! 康纳
答案 0 :(得分:0)
你快到了。略微修改您的反应式表达式可以得到x坐标。
formData <- reactive({
data <- sapply(fieldsAll, function(x) unlist(input[[x]][1]))
data <- c(data, timestamp = epochTime())
data <- t(data)
data
})