【发布时间】:2019-04-26 13:59:53
【问题描述】:
我正在编写一个相对简单的 Shiny 应用程序,它基本上需要读取一个文件,执行一些计算以创建一个新变量并输出该变量最近 5 个点的平均值。一个非常简化的应用版本:
require(shiny)
x1 <- 42
df.data <- read.csv("data.csv")
df.data$y2 <- df.data$y1/x1
ui <- fluidPage(
h5(textOutput("calc1"))
)
server <- function(input, output, session) {
output$calc1 <- renderText({
az <- nrow(df.data)
aa <- az - 5
y5m <- mean(df.data$y2[aa:az], na.rm=TRUE)
})
}
shinyApp(ui=ui, server=server)
文件由外部程序每分钟更新一次。我正在努力的部分是如何让应用程序读取文件(例如每 2 分钟)并保持最近 5 分钟的平均值更新。
我已经阅读过关于响应性的文章,但在读取文件时我似乎无法使其工作。我是 Shiny 的新手,所以也许我错过了一些基本概念。 有什么建议吗?
reactiveFileReader 是我一直在尝试使用的功能,但无法使其工作。我错过了什么?
server <- function(input, output, session) {
df.data <- reactiveFileReader(1000, NULL, "data.csv", header=F)
output$calc1 <- renderText({ ... })
}
【问题讨论】:
-
看看
reactiveFileReader()函数。 -
你试过
session而不是NULL吗? -
是的,但它不起作用。我收到类似
reactive({rv$cookie valueFunc()})的消息,然后什么也没发生。