У меня есть Shinydashboard, который отображает графики и поля на основе данных, представленных в одном файле CSV.
Я запланировал обновление CSV на каждый 1 час. Но shinydashboard не обновляется, если я не обновляю его вручную или не запускаю снова (что вовсе не идеально).
Я пробовал invalidatelater (), но, похоже, он не работает.
Вот небольшой фрагмент.
server<-function(input,output,session){
`observe({
invalidateLater(60000,session)
isolate(Day<-read.csv("C:/Users/user1/Desktop/dashboardstuff/querycode.csv"))
})
querycode - это имя CSV.
Этот CSV обновляется каждые 60 минут, и я хочу, чтобы моя панель управления также обновлялась.
Не уверен, что это правильный способ сделать это. Любая помощь будет оценена.
Просто чтобы поставить мой код,
ui<-dashboardPage(
dashboardHeader(title = "METRIC DASHBOARD"),
dashboardSidebar(
useShinyjs(),
sidebarMenu(
id='tabs',
menuItem("NA DAY COUNT", tabName = "tab1") ,
menuItem("EU DAY COUNT", tabName = "tab2"),
menuItem("JA DAY COUNT", tabName = "tab3"),
menuItem("CUMULATIVE DAY COUNT", tabName = "tab4") ,
menuItem("EU DEFECTS SUBMITTED", tabName = "tab5"),
menuItem("NA DEFECTS SUBMITTED", tabName = "tab6") ,
menuItem("JA DEFECTS SUBMITTED", tabName = "tab7") ,
menuItem("Total DEFECTS SUBMITTED", tabName = "tab8"),
menuItem("HOURLY PRODUCTIVITY", tabName = "tab9") ,
menuItem("HOURLY DEFECTS SUBMITTED", tabName = "tab10")
)),
dashboardBody(
tabItems(
tabItem(
tabName = 'tab1',
highchartOutput("h1",height = 700)
),
tabItem(
tabName = 'tab2',
highchartOutput("h2",height = 700)
),
tabItem(
tabName = 'tab3',
highchartOutput("h3",height = 700)
),
tabItem(
tabName = 'tab4',
highchartOutput("h4",height = 700)
),
tabItem(
tabName = 'tab5',
highchartOutput("h5",height = 700)
),
tabItem(
tabName = 'tab6',
highchartOutput("h6",height = 700)
),
tabItem(
tabName = 'tab7',
highchartOutput("h7",height = 700)
),
tabItem(
tabName = 'tab8',
highchartOutput("h8",height = 700)
))
)
)
tabnames = c('tab1', 'tab2','tab3','tab4','tab5','tab6','tab7','tab8')
А вот серверная часть,
Сервер <-функции (вход, выход, сессия) {</p>
observe({
invalidateLater(60000,session)
isolate(Day<-read.csv("C:/Users/user1/Desktop/dashboardstuff/querycode.csv"))
})
# Day <- reactiveFileReader(60000*5,session,'C:/Users/pchintap/Desktop/dashboardstuff/querycode.csv',read.csv,header=TRUE)
# Day <- read.csv("C:/Users/user1/Desktop/dashboardstuff/querycode.csv")
# })
strptime(Day$review_started_timestamp,"%Y-%m-%d %H:%M:%S")+5*3600+30*60->Day$review_started_timestamp
substr(Day$review_started_timestamp,6,7)->Day$Month
substr(Day$review_started_timestamp,1,10)->Day$date
strftime(Day$date,format = "%V")->Day$Week
Day$Week<-as.factor(Day$Week)
substr(Day$review_started_timestamp,12,13)->Day$starthour
merge(Day,Associate.data%>%select("username","Q4.Manager","Project","Level","Q4.Shift","Region"),by.x = "username",all.x = TRUE)->Day
Day[complete.cases(Day),]->Day
output$h1<-renderHighchart({
hourNA<-Day
Остальная часть кода - это просто манипулирование данными так, как я хочу.
Но вот как я пытаюсь читать CSV "День".
Я попробовал методы, упомянутые в комментариях. Но, похоже, это не работает.