0

我正在尝试使用 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()})

表的输出将如下所示

谁能告诉我为什么我不能用这些数据库值创建一个时间序列?

4

1 回答 1

0

如果保证时间戳是定期的,那么您应该可以按照ts(result1()[-1], start=myStart, frequency=myFrequency)我删除第一列的位置进行处理,因为您不想绘制时间与时间的关系 - 然后其他列将被绘制为从 myStart 开始的时间序列(你应该能够从中提取result1()[1,1](我们不知道你有什么格式的时间戳,所以很难给出指导),myFrequency它将是你每单位时间进行的测量次数。

如果您没有固定的时间点,那么ts使用完全错误的东西 - 大多数人似乎zoo在这种情况下使用该包。

于 2014-04-08T13:26:51.933 回答