【问题标题】:shiny app for multiple users to edit供多个用户编辑的闪亮应用程序
【发布时间】:2019-01-23 16:11:55
【问题描述】:

我想知道我是否可以创建一个闪亮的应用程序(类似于 excel 电子表格),我可以授权多个用户登录(如使用 shinyapp.io)同时编辑/输入?我之所以要使用shiny而不仅仅是excel电子表格,是因为我可能会根据多个用户使用R上传的数据添加更多功能(如统计估计、可视化等)。

期待任何建议/建议 谢谢!

【问题讨论】:

标签: shiny shinydashboard


【解决方案1】:

我发现以下模式对我有用:在 server 之外创建一个 reactiveVal 对象,然后在应用程序中访问/更新它。在这里,我编写了一个包装器,用于在聊天中获取和附加按摩。 (代码如下)

但是,我认为这种模式只有在所有用户共享同一个 R 会话时才有效,并且如果当前 R 会话结束(所有用户断开连接),数据将会丢失。因此,您可能需要查看this article 以了解持久存储方法。另外,请查看reactiveFileReader 的文档以获取更便捷的文件访问方式。

library(shiny)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      textInput("msg", "Message", placeholder = "type a message in the chat"),
      actionButton("submit", "submit")
    ),
    mainPanel(
      verbatimTextOutput("text")
    )
  )
)

createChat <- function(initVal) {
  chat_text <- reactiveVal(initVal)
  list(
    get = function(){ chat_text() },
    append = function(val) {
      chat_text(paste0(isolate(chat_text()), "\n", val))
    }
  )
}

myChat <- createChat("## This is a chat ##\n")

server <- function(input, output) {
  observeEvent(input$submit, {
    myChat$append(input$msg)
  })
  output$text <- renderText(myChat$get())
}

shinyApp(ui = ui, server = server)

【讨论】:

    猜你喜欢
    • 2017-03-10
    • 2016-05-27
    • 2019-03-24
    • 2019-07-15
    • 2019-10-26
    • 2013-07-08
    • 1970-01-01
    • 2015-11-12
    • 2016-05-23
    相关资源
    最近更新 更多