gpt4 book ai didi

在交互式 R session 中从 Shiny 的应用程序返回值

转载 作者:行者123 更新时间:2023-12-02 16:28:57 30 4
gpt4 key购买 nike

我正在使用 shiny 制作一个互动小部件。小部件的目的不是创建一个独立的 Shiny 网络应用程序。相反,想法是在交互式 R session 中运行小部件,以允许用户使用 GUI 交互式地操作 session 中的数据。然后,Shiny 应用程序的输出应由该函数返回给用户 session 。

我的小部件的“真实”目的是交互式地选择绘图上的数据点,并返回选择的值作为函数的输出。然而,为了制作一个漂亮而简单的 REPREX,我选择了一个更简单的场景:

multiply_me <-
function(number1) {
require(shiny)

shinyApp(
ui = fluidPage(
selectInput('number2', label = 'Enter multiplication factor', choices = c(1, 2, 3)),
textOutput('result')
),

server = function(input, output) {
output$result = renderText(number1 * as.numeric(input$number2))
}
)

}

在 multiply_me 函数中,用户可以从现有的交互式 session (number1) 中获取一个变量,然后运行 ​​multiply_me(number1) 来启动 Shiny 的小部件。然后,该小部件允许用户在 slider 上选择乘法因子并查看结果。

但是如何将计算结果 (number1 * number 2) 返回给交互式 R session ?

最佳答案

你可以使用stopApp:

multiply_me <-
function(number1) {
require(shiny)

runApp(list(
ui = fluidPage(
selectInput('number2', label = 'Enter multiplication factor', choices = c(1, 2, 3)),
textOutput('result'),
actionButton('ok','OK')
),

server = function(input, output) {
output$result = renderText(number1 * as.numeric(input$number2))
observe({
if(input$ok){
stopApp(number1 * as.numeric(input$number2))}
})
}
))
}

multiply_me(1)
[1] 2

关于在交互式 R session 中从 Shiny 的应用程序返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63847125/

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