Здравствуйте, я пытаюсь создать блестящее приложение, в котором я хочу отобразить, сколько заказов было на графике In / Out TAT (Доставлено в течение 24 часов, затем In TAT, если нет, то Out TAT).
Это то, что таблица после dcasting & манипулирования необработанными данными, которые я имел со мной на сервере. R
WareHouse Order Date In TAT Out TAT
W-1 2019-02-14 431 5
W-1 2019-02-15 533 10
W-1 2019-02-16 234 64
W-1 2019-02-17 456 12
W-2 2019-02-14 123 11
W-2 2019-02-15 787 56
W-2 2019-02-16 234 89
W-2 2019-02-17 221 23
W-3 2019-02-14 111 12
W-3 2019-02-15 789 56
W-3 2019-02-16 345 98
W-3 2019-02-17 897 45
Теперь я хочу построить график на первой странице моего shinyapp, где я мог бы показать, сколько заказовбыли в TAT и из другого склада в разные даты.
Вот то, чего я достиг на данный момент.
UI.R
library(shiny)
library(DT)
library(gtools)
shinyUI(
fluidPage(
navbarPage(
title = 'Dashboard',
tabPanel('Overview'),
tabsetPanel(
tabPanel('In/Out TAT Details',
fluidRow(
# plotlyOutput("overview"),
DT::dataTableOutput("view_fwd"),width = 6
) )
),
tabPanel('B2C Details'
))))
В Server.R я читаю файл и вычисляю TAT ордеров и создаю таблицу, показанную выше
library(shiny)
library(ggplot2)
shinyServer(
function(input, output) {
overview <- reactive({
library(DT)
library(RPostgreSQL)
library(markdown)
library(dplyr)
library(reshape2)
library(ggplot2)
library(plotly)
m <- read.csv("/data/xia2.csv", header=TRUE, sep=",")
x <- m[,c("Order.ID","Warehouse","order.time","deliver.Time")]
x$deliver.Time <- as.POSIXct(x$deliver.Time , format='%m-%d-%Y %H:%M')
x$order.time <- (as.POSIXct(x$order.time, format='%m-%d-%Y %H:%M'))
# as.character
x$diff <- (difftime(x$deliver.Time,x$order.time,units="days"))
x$TAT <- ifelse(x$diff > 1, paste("Out TAT"), paste("In TAT"))
x$date <- as.Date(x$deliver.Time)
table <- dcast(x, Warehouse + date ~ TAT,value.var = "Order.ID", fun.aggregate = length, margins = TRUE)
table <- table[which(table$date !="(all)"),]
})
output$view_fwd <- DT::renderDataTable(DT::datatable({
view_fwd <- overview()
},class = 'cell-border stripe',options = list(pageLength = 50),
rownames= FALSE))
})
На данный момент я просто отображаю фрейм данных 'table', полученный на сервере. R, вместо этого я хочу создать график или график, которые когда-либо будут возможны.
Спасибо