【发布时间】:2016-02-18 07:40:22
【问题描述】:
情景描述: 我在服务器上启动并运行了一个闪亮的应用程序,该服务器通过每天更新的 SQL Server 连接到实时数据。
问题: 我想自动化表格编写过程并将其设置为每天 20:00 创建一个表格。 编写过程应包括闪亮应用的自动刷新,因为它需要更新和重新计算来自 SQL 源连接的数字。
因此,理想的流程如下所示: day1 20:00 -->闪亮的应用程序重新运行,更新的数据被送入分析-->结果的备份表以csv形式保存在名为“Back-up 1”的目录中 day2 20:00 -->闪亮的应用程序重新运行,更新的数据被输入分析-->结果的备份表保存为 csv 在名为“Back-up 2”的目录中 等等……
我寻求的是 R 代码指示: 1 如何使表格定期写入 2 如何让闪亮的应用定期刷新
问题更新:按照以下建议创建反应式数据库连接: 实现的问题是,在我的 Shiny 应用程序中,我创建了 3 个反应性数据集以可视化数据,解决方案是(我想)将数据库的反应性构建到 3 个反应性数据集中的每一个中,但是我想知道是否有如何在不重复相同代码行 3 次的情况下执行此操作将是一种明智的方法。这是 Shiny 的服务器端(不工作)
##server.R##
server<-function(input,output, session){
MyData <- reactive({
invalidateLater(86400000, session)
#connect to the Server
connection <- odbcConnect(dns, user, pass)
SituationToday<-{cat("test");sqlQuery(connection, "SELECT ALL * FROM Table;")}
odbcClose(connection)
#data manipulation of SituationToday dataset including cleaning, filtering, joins, re-coding, labelling & as result I get 2 datasets
df1
df2
#backup
write.csv2(df1, paste0("filepath/Backup1", sys.Date(), ".csv"))
write.csv2(df2, paste0("filepath/Backup2", sys.Date(), ".csv"))
#reactive datasets that I need in order to visualise the data
data.df<-reactive({
VARIABLE<-input$variable
df1[df1$variable %in% VARIABLE,]})
data2.df<-reactive({
VARIABLE2<-input$variable2
df2[df2$variable2 %in% VARIABLE2,]})
data3.df<-reactive({
SELECT<-input$select
GROUP<-input$group
df1[df1$variable %in% SELECT & df1$GROUP %in% GROUP,]})
})
#different outputs follow
output$plot<-renderPlot({
plot(data.df()) })
output$plot<-renderPlot({
plot(data.df2()) })
output$plot<-renderPlot({
plot(data.df3()) })
}
shinyApp(ui=ui,server=server)
如何在服务器函数中创建 3 个不同的反应数据集时保持连接反应,而不必在每个反应数据集中重复 1/3 的服务器代码?
【问题讨论】:
-
我想我的观点很清楚:我想知道如何自动编写一个连接到刷新应用程序的 csv 文件。我的 R 代码在这里无关紧要,虽然它不知道如何做我要求的事情,我没有尝试,因为我没有在网上找到参考,这就是我在这里问的原因。如果您一定需要从这里开始: write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ", eol = "\n", na = "NA", dec = ".", row.names = TRUE, col.names = TRUE, qmethod = c("escape", "double"), fileEncoding = "")
-
为什么这么生气?看看这个:stackoverflow.com/a/21548386/2923027
-
嗯,现在我们谈谈。不生气只是这是我真正想解决的问题,我会看看这个,谢谢@MaxPD
-
这根本不清楚,因为你甚至没有给你的操作系统。运行常规任务是操作系统的事情。
-
感谢@Spacedman 的评论,在 MxPD 发表评论之前我不知道这一点