gpt4 book ai didi

r - 如何将Shiny模块的返回值存储在reactiveValues中?

转载 作者:行者123 更新时间:2023-12-02 07:42:02 27 4
gpt4 key购买 nike

下面的

版本1是一个玩具模块,它要求用户输入txt,并将输入返回到主Shiny应用程序。然后,主 Shiny 应用程序渲染文本并将其输出到屏幕。

这里,我将模块的返回值存储在名为 mytxt 的变量中,并通过 renderText({ mytxt() }) 调用它。

<小时/>

但是,我真正想做的是将返回值存储到主 Shiny 应用程序中的 reactiveValues 中。 (我是否输出它并不重要,因为我想对该值进行进一步的评估。)但遗憾的是我发现没有办法让它发挥作用。我在下面的版本 2 中展示了失败的代码。

<小时/>

版本 1(正确)

应用程序.R

library(shiny)
source("module_1.R")

ui <- fluidPage(

returnUI("returntxt"),
textOutput("mytxt")

)

server <- function(input, output, session) {

mytxt <- callModule(returnServer, "returntxt")

output$mytxt <- renderText({ mytxt() })

}

shinyApp(ui, server)

模块_1.R

returnUI = function(id) {
ns <- NS(id)

tagList(
textInput(ns("txt"), "Write something")
)
}


returnServer = function(input, output, session) {
mytxt <- reactive({
input$txt
})

return(mytxt)
}
<小时/>

版本 2(需要帮助!)

应用程序.R

library(shiny)
source("modules/module_1.R")

ui <- fluidPage(

returnUI("returntxt"),
textOutput("mytxt")

)

server <- function(input, output, session) {

myvals <- reactiveValues(
txt = NULL
)

mytxt <- callModule(returnServer, "returntxt")

myvals$txt <- isolate(mytxt())

output$mytxt <- renderText({ myvals$txt })

}

shinyApp(ui, server)

module.R 与版本 1 相同。

最佳答案

我刚刚通过从模块返回 reactiveValues 并使用 observe 找到了答案:) Woohoo!

应用程序.R

library(shiny)
source("modules/module_1.R")

ui <- fluidPage(

returnUI("returntxt"),
textOutput("mytxt")

)

server <- function(input, output, session) {

myvals <- reactiveValues(
txt = NULL
)

mytxt <- callModule(returnServer, "returntxt")

observe({
myvals$txt <- mytxt$txt
print(myvals$txt)
})

output$mytxt <- renderText({ myvals$txt })

}

shinyApp(ui, server)

模块_1.R

returnUI = function(id) {
ns <- NS(id)

tagList(
textInput(ns("txt"), "Write something")
)
}

returnServer = function(input, output, session) {
myreturn <- reactiveValues()

observe({ myreturn$txt <- input$txt })

return(myreturn)
}

关于r - 如何将Shiny模块的返回值存储在reactiveValues中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48882427/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com