如何在Shiny应用程序中将用户输入作为R代码运行?

Pro*_*Man 4 r shiny shinyjs

我想创建一个闪亮的应用程序,它有一个输入用于编写一些R函数或Command,通过ui.R读取它然后将它传递给server.R执行该R命令以显示结果.

我花了几个小时搜索一些例子但找不到任何东西,我已经知道如何使用ui和服务器创建Shiny应用程序并将输入值传递给服务器并使用它们,但我不知道是否可以创建一个闪亮的像R这样的应用程序,您可以编写命令并返回结果,任何示例或帮助将不胜感激.

Flo*_*ian 6

让用户在您的应用中运行代码是不好的做法,因为它带来了很大的安全风险.但是,对于开发,您可能希望通过Dean Attali从shinyjs包中检查此功能.

链接示例:

  library(shiny)
  library(shinyjs)

  shinyApp(
    ui = fluidPage(
      useShinyjs(),  # Set up shinyjs
      runcodeUI(code = "shinyjs::alert('Hello!')")
    ),
    server = function(input, output) {
      runcodeServer()
    }
  )
Run Code Online (Sandbox Code Playgroud)

在部署应用程序时包含以下原因并不是一个好主意的一些示例:

尝试输入:

shinyjs::alert(ls(globalenv()))
Run Code Online (Sandbox Code Playgroud)

要么

shinyjs::alert(list.files())
Run Code Online (Sandbox Code Playgroud)