【问题标题】:Shiny for non-interactive GUI [closed]非交互式 GUI 的闪亮 [关闭]
【发布时间】:2022-01-12 21:10:44
【问题描述】:

我有一个相当自动化的 R 脚本,因此脚本顶部只需要 4 个用户输入(数据所在的特定文件或文件夹的路径,以及应该写入输出的位置)。我有兴趣为这个脚本构建一个简单的 GUI,看起来 Shiny 就是这样做的方法。但从我目前了解的一点点来看,似乎服务器函数server<-function(input,output){} 必须有一个像renderPlot 这样的输出。

但是,我真正想要的只是输入部分,然后是一个按钮,上面写着“开始!”并且用户输入只是输入到我的脚本中。

所以问题是,如果没有特定的输出部分,可以制作一个闪亮的 GUI 吗?或者我应该为此使用其他一些包吗?谢谢!

【问题讨论】:

  • 嗨,输出可以是任何东西,比如你提到的按钮。您可能应该遵循其中一个初学者教程来更好地理解闪亮(shiny.rstudio.com/articles/basics.html)。您可以注释与绘图输出相关的代码部分,看看它不会中断。
  • 是的,“输出”可能只是一条显示“脚本完成”的消息。
  • 哇,好的,没想到会这么简单,谢谢你们!
  • 你可以考虑Shiny gadgetsminiUI
  • 还可以查看闪亮的 flexdashboard:rstudio.github.io/flexdashboard/articles/shiny.html 也可以查看示例链接。这是一种使用闪亮的 UI 启动和运行的简单方法。此外,shinyWidets 和 shinythemes 包对于轻松为您的 flexdashboard UI 添加更多样式很有用。

标签: r shiny


【解决方案1】:

我创建了一个带有一个执行按钮、零输出和 4 个输入的示例应用程序。在服务器内部,我使用了observeEvent(),因此每次按下“Go”按钮时,都会创建 4 个变量,然后使用source() 执行脚本。请注意参数local = TRUE 告诉 R 在哪里查看这 4 个变量。

脚本 将被称为print_four_variables.R 并位于同一项目目录中。它只包含一行。

print(paste(a,b,c,d, sep = ' and '))

应用程序:

library(shiny)

ui <- fluidPage(
  numericInput('a', "Insert a:",value = 1),
  numericInput('b', "Insert b:",value = 2),
  numericInput('c', "Insert c:", value = 3),
  numericInput('d', "Insert d:", value = 4)
)

server <- function(input, output, session) {
  observe({
    a <- input$a
    b <- input$b
    c <- input$c
    d <- input$d
    
    source('print_four_variables.R',local = TRUE)
  })
}

shinyApp(ui, server)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 2021-10-14
    • 2019-05-20
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多