【问题标题】:R Shiny - Load parameters and data before calling the appR Shiny - 在调用应用程序之前加载参数和数据
【发布时间】:2017-06-09 14:14:10
【问题描述】:

我有一个结构类似这样的应用程序:我想在调用应用程序之前加载参数(库、函数)和数据。当我运行此应用程序脚本时它不起作用。所以我目前的解决方案是在控制台中加载直到df <- ...的行,然后在运行脚本之后。

TheFileDirectory <- "/.../"

# Libraries and functions
source(paste0(TheFileDirectory, "LibFun script.R"))

# Data
df <- readRDS(file = paste0(TheFileDirectory, "TheData.rds"))

# Call the app
source(paste0(TheFileDirectory, "server.R"))
source(paste0(TheFileDirectory, "ui.R"))

shinyApp(ui = Interface, server = Serveur)

我怎样才能避免这样做?我确信有一个干净的解决方案,但我没有找到它。

这里是LibFun script.R

library(ggplot2)
library(shiny)
library(shinydashboard)

CountPlotFunction <- function(MyData)

    {
  MyPlot <- ggplot(data = MyData, aes(x = MyData)) +
    geom_bar(stat = "count", aes(fill = MyData)) +
    geom_text(stat = "count", aes(label = ..count..)) +
    scale_x_discrete(drop = FALSE) +
    scale_fill_discrete(drop = FALSE)
  return(MyPlot)
}

这是数据(执行TheData.rds的脚本):

var1 <- c("Russia","Canada","Australia","Australia","Russia","Australia","Canada","Germany","Australia","Canada","Canada")
var2 <- c("UnitedStates","France","SouthAfrica","SouthAfrica","UnitedStates","SouthAfrica","France","Norge","SouthAfrica","France","France")
var3 <- c("Brazil","Colombia","China","China","Brazil","China","Colombia","Belgium","China","Colombia","Colombia")
df <- data.frame(var1, var2, var3)

TheData <- saveRDS(df, file = paste0(TheFileDirectory, "TheData.rds"))

【问题讨论】:

    标签: r shiny shinydashboard


    【解决方案1】:

    检查此链接: https://shiny.rstudio.com/articles/modules.html

    部分:包装模块

    您似乎有两个文件用于服务器和 ui。因此文件 global.R 会有所帮助,因为它将在服务器和 ui 之前调用。

    【讨论】:

    • 谢谢。但它仅在global.R 文件与ui.Rserver.R 文件位于同一目录时才有效。允许global.R 文件(或等效文件)位于另一个目录中的解决方案?
    • 你可以通过 source() 从全局调用其他包。我认为在编写自定义输入和输出绑定时经常使用它。
    • 如果这是您要查找的内容,您可以通过单击“检查”符号来接受答案...
    猜你喜欢
    • 2017-02-03
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多