【发布时间】:2015-12-02 22:25:02
【问题描述】:
我正在构建一个闪亮的应用程序,我需要重建一个数据框,每次应用程序打开时都会解析一个 json 文件(因为 json 文件会改变)。然后,应用程序中的函数将需要访问此数据框。将代码放在 server.R 前面实际上并没有创建数据框。另一种方法是创建一个创建数据框的函数,并在每次需要数据框时调用该函数,但每次需要时都会重新创建数据框。
有没有一种方法可以创建一次数据框,并将其保存在一个变量名中,以便在需要时由应用程序的其余部分中的函数访问?
现在我在 server.R 中的代码遵循以下结构。但是,这里永远不会调用填充 myDF 的 for 循环。另一方面,我不想把它放在每次我需要 myDF 时调用的函数中,每次都重新创建它。我只想在应用程序启动时创建 myDF,并将其保存为 myDF 以便我可以使用它。
json_file <- "file.json"
json_data <- fromJSON(json_file)
myDF <- as.data.frame(ncol = ..., nrow = ...) #creates an empty data frame myDF
for (b in field_names) {
#code that fills in myDF
}
myFunc <- function(inputs) {
#a function that uses myDF
}
shinyServer(function(input, output, session) {
output$out1 <-renderText({
myFunc(input$inputs)
})
}
【问题讨论】: