闪亮的应用程序,多个用户可以编辑

时间:2018-08-16 16:19:27

标签: shiny shinydashboard

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

期待任何建议 谢谢!

1 个答案:

答案 0 :(得分:0)

我发现以下模式对我有用:在reactiveVal外部创建一个server对象,然后在应用程序中访问/更新它。在这里,我写了一个包装,用于获取聊天消息并将消息附加到聊天记录中。 (下面的代码)

但是,我认为这种模式仅在所有用户共享相同的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)