J'essaie d'exécuter un script R comme une application R Shiny. À partir de l'interface utilisateur, l'utilisateur télécharge un fichier .csv et saisit 4 variables numériques. Ces variables doivent être passées à travers la fonction et générer une table final_table qui devrait être affichée en sortie dans l'application Shiny. Actuellement, les variables sont passées à travers la fonction mais ne résultent pas dans la table finale. Je suis nouveau avec RShiny, apprécie votre aide pour faire ce travail. My_function.R est le fichier de script qui contient la fonction my_function(). Ceci est en fait un script R de 500 lignes compressé en une fonction pour une facilité d'utilisation.Comment exécuter un long script R en tant que fonction dans RShiny et afficher la solution dans l'interface utilisateur?
my_function <- function(tbl_load, ts_freq, ts_start_yr, ts_start_month, seasonal_cat) {
..........
return(collect_ALL_final_fair)
}
ui.R
library(shiny)
fluidPage(
titlePanel("Elasticity Tool"),
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Choose datatable csv file', accept=c('.csv')),
numericInput("ts_freq", "Time series frequency:", 52, min = 1, max = 100),
numericInput("ts_start_yr", "Starting year:", 2013, min = 1990, max = 2030),
numericInput("ts_start_month", "Starting month:", 3, min = 1, max = 12),
numericInput("seasonal_cat", "Seasonal Category", 0, min = 0, max = 1),
br(),
actionButton("goButton", label = "Run tool"),
br()
),
mainPanel(
tabsetPanel(type = 'tabs',
tabPanel("Output", tableOutput('contents2'))
)
)
)
)
server.R
library(shiny)
library(datasets)
source("my_function.R")
#packages
library("glmnet")
library(Matrix)
library(dplyr)
library(forecast)
library(zoo)
library(stats)
library(car)
options(scipen = 999)
shinyServer(function(input, output) {
observeEvent(input$goButton, {
tbl_load <- input$file1
ts_freq <- input$ts_freq
ts_start_yr <- input$ts_start_yr
ts_start_month <- input$ts_start_month
seasonal_cat <- input$seasonal_cat
output$contents2 <- renderDataTable({
my_function(tbl_load, ts_freq, ts_start_yr, ts_start_month, seasonal_cat)
})
})
})
Essayez 'source ("my_function.R", locale = TRUE)' 'ou source ("Votre fonction location.r", locale = TRUE)' –