shiny - 供多个用户编辑的闪亮应用程序
问题描述
我想知道我是否可以创建一个闪亮的应用程序(类似于 excel 电子表格),我可以授权多个用户登录(如使用 shinyapp.io)同时编辑/输入?我想使用闪亮的而不是只使用 Excel 电子表格的原因是因为我可能会根据多个用户使用 R 上传的数据添加更多功能(例如统计估计、可视化等)。
期待任何建议/建议谢谢!
解决方案
我发现以下模式对我有用:在reactiveVal
外部创建一个对象server
,然后在应用程序中访问/更新它。在这里,我编写了一个包装器,用于在聊天中获取和附加按摩。(下面的代码)
但是,我认为这种模式只有在所有用户共享同一个 R 会话时才有效,并且如果当前 R 会话结束(所有用户断开连接),数据将会丢失。因此,您可能希望查看本文以了解持久性存储方法。此外,查看文档以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)
推荐阅读
- c++ - 为什么 *int 与 go 中的 []int 不同
- python-3.x - 向函数添加可选参数
- c++ - c ++高斯随机数生成器不断生成相同的序列
- asp.net - 为什么每个 IIS 响应的末尾(作为最后一个字节)可能会有一个 UTF-8 BOM?
- reactjs - Excel文件数据未附加在数组反应JS中
- c++ - 如何从函数返回范围视图?
- wordpress - 可以从网站前端访问 WordPress 插件中的 CSV 文件吗?
- javascript - 如何获得一个月中的任何一天的日期?
- sql - SQL:第二旧的日期
- simics - Simics 使用的 BIOS 文件在磁盘的哪个位置?