Я пытаюсь разработать приложение Shiny, способное получать файл .csv и выполнять прогноз. Во-первых, мне нужно импортировать 2 CSV-файла и преобразовать столбец Дата из символов в формат даты. Их, преобразуйте фрейм данных в объект tsibble для запуска прогноза.
В сценарии R это просто, я бы импортировал файл, а они просто используют:
data$Date <- ymd(data$Date)
dados = as_tsibble(data,index = Date)
Но это не работает Я перепробовал много разных подходов, в том числе тот, который был в коде, но я продолжаю получать error evaluation nested too deeply: infinite recursion/options (expressions=)?
, где это должен быть фрейм данных с информацией str()
.
Ожидаемый результат - таблица с такой информацией:
> str(data)
'data.frame': 975 obs. of 13 variables:
$ Date : Date, format: "2017-05-01" "2017-05-02" "2017-05-03" "2017-05-04" ...
$ Demand : int 122 124 113 124 126 114 100 121 118 135 ...
Я не могу придумать никакого решения. Любое предложение?
Мой код:
**UI.R**
library(shiny)
library(shinydashboard)
library(fpp3)
library(fasster)
dashboardPage(
dashboardHeader( title = "DEMO Forecast"),
dashboardSidebar(
sidebarMenu(
menuItem("Data",tabName = "Data"),
menuItem("Analysis", tabName = "Analysis")
)
),
dashboardBody(
tabItems(
tabItem(tabName = "Data",
fluidRow(
box(title = "Enter the ED demand file",
#INPUT
fileInput("file", label = "Choose .csv file",
multiple = FALSE, accept = ".csv",
buttonLabel = "Browse")
),
box(title = "Enter the ED external data file",
#INPUT
fileInput("file_extra", label = "Choose .csv file",
multiple = FALSE, accept = ".csv",
buttonLabel = "Browse")
)
),
fluidRow(
#OUTPUT
box(width = 12, tableOutput("table_data"))
)
),
tabItem(tabName = "Analysis",
fluidRow(
box(title = "Date format",
#INPUT
selectInput ("date_format", h5("Date format"),
choices = list("ymd", "mdy", "dmy", "ydm")),
h5("y = year, m = month, d = day"),
),
#OUTPUT
box(title = "Accuracy Measures", width = 12,
tableOutput("table_erro")
)
)
)
)
)
)
server.R
library(shiny)
library(shinydashboard)
library(fpp3)
library(fasster)
shinyServer(
function(input,output){
#Import ED demand data
data = reactive({
file1 = input$file
if(is.null(file1)){return()}
read.csv(file1$datapath,header = TRUE, sep = ",",
stringsAsFactors = FALSE, dec = ".", na.strings = " ")
})
data <- eventReactive(input$date_format,{
switch (input$date_format,{
"ymd" = ymd(data()$Date)
"ydm" = ydm(data()$Date)
})
})
#Import extra data
data_extra = reactive({
file_extra = input$file_extra
if(is.null(file_extra)){return()}
read.csv(file_extra$datapath, header = TRUE, sep = ",",
stringsAsFactors = FALSE, dec = ".", na.strings = " ")
})
output$table_data = renderTable({
if(is.null(data())){return()}
str(data())
})
}
)