我在编码方面有点新鲜,但我总是试着自学新东西。最近我开始在R中使用闪亮,因为我需要在我的脚本的某处进行用户交互。但是,现在我已经构建了我的闪亮应用程序(一个非常基本的应用程序,但它有效),我的问题是,在阅读了几十个网页,教程等之后,我仍然不明白如何添加将存储结果的代码将闪亮应用程序中的用户输入转换为我可以在其他R脚本中使用的向量/值。
我的ui.R scipt:
library(shiny)
ui = fluidPage(
radioButtons("Question","Do you want to keep cluster?",
c("YES" = 1, "NO" = 0)),
actionButton(inputId= "submit", label="OK")
)
我的服务器脚本
shinyServer(function(input, output) {
observe({
if(input$submit > 0){
stopApp(input$Question)
}
})
})
此应用程序将在另一个R脚本的循环内运行。它将向用户显示由自动聚集大量数据的脚本创建的每个群集的是/否问题。
我需要的是在每次循环运行后将0和1输出值组合成一个矢量,如answer< -c(answer,“ShinyOutputValue”)。
它让我疯狂,我无法让它发挥作用。请帮忙:)
标记
答案 0 :(得分:1)
您可以在全球环境中创建变量答案。
assign("answer", NULL, envir = .GlobalEnv) # answer <- NULL
然后,使用函数get
(或mget
),您可以从全局环境“获取”变量answer
到闪亮(在某些随机环境中运行闪亮),然后使用{ {1}}用全局环境中的新值覆盖它。
assign
您还可以创建自己的环境并将对象保存在:
中assign("answer", NULL, envir = .GlobalEnv) # answer <- NULL
library(shiny)
ui <- fluidPage(
radioButtons("Question","Do you want to keep cluster?",
c("YES" = 1, "NO" = 0)),
actionButton(inputId= "submit", label="OK")
)
server <- shinyServer(function(input, output) {
observe({
if(input$submit > 0){
val <- as.numeric(input$Question)
old_val <- get("answer", envir = .GlobalEnv)
assign("answer", c(old_val, val), envir = .GlobalEnv)
stopApp(input$Question)
}
})
})
shinyApp(ui, server)
answer