簡體   English   中英

在R Shiny中使用MySQL數據創建時間序列

[英]Create Time series with MySQL data in R Shiny

我正在嘗試使用R Shiny開發儀表板,該儀表板從MySQL數據庫提取數據並以圖形形式表示。 我需要使用多個數據創建一個時間序列。 但是,當無法將MySQL中的時間戳值轉換為時間序列中的日期時間值時,就會出現問題。 以下是我的server.R代碼:

con <- dbConnect(MySQL(),user="root",password="891208",host="localhost",dbname="openPos")
shinyServer(function(input, output) {
 query1 <- reactive({ "SELECT sale_time,sum(quantity_purchased * item_unit_price) 
                            AS revenue, sum(quantity_purchased * item_cost_price) AS cost,
                            sum(quantity_purchased * item_unit_price)-sum(quantity_purchased * item_cost_price) as profit
                            FROM ospos_sales, ospos_sales_items
                            WHERE ospos_sales.sale_id = ospos_sales_items.sale_id
                            GROUP BY sale_time"})
result1 <- reactive({dbGetQuery(con,query1())})
z <- reactive({ts(result1())})
output$ts <- renderPlot({p<-ts.plot(z())
                       print(p)})
output$table <-renderTable({z()})

該表的輸出將如下所示

誰能告訴我為什么我不能使用這些數據庫值創建時間序列?

如果保證時間戳是固定的時間間隔,那么您應該可以沿着ts(result1()[-1], start=myStart, frequency=myFrequency) ,在這里我要刪除第一列不想根據時間繪制時間-其他列將作為從myStart開始的時間序列繪制(您應該能夠從result1()[1,1]提取該序列(我們不知道該格式為時間戳,因此很難提供指導),而myFrequency將是您每單位時間進行的測量次數。

如果您沒有固定的時間點,則使用ts完全是錯誤的事情-在這種情況下,大多數人似乎都在使用zoo軟件包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM