2016-05-18 103 views
0

我對可能是一個非常簡單的問題表示歉意,但我一直未能找到一個例子來解決它。我將簡單的CSV數據提供給dygraphs,其中行包含不同的時間,然後爲多個變量(當時)賦值。我可以將數據繪製得很好。但是,我想知道如何讓dygraphs執行這些數據的功能。起初,我只是想計算各種變量的時間步長之間的差異,但之後我想做一些額外的事情,如計算平均值和標準偏差。我假設我需要在JavaScript代碼中進行數學運算,但不知道如何去做。Dygraphs中時間序列的差異

所以,如果有人可以提供一個簡單的例子來說明如何計算變量的時間步長之間的差異並獲得dygraphs來繪製我真的很感激它。這就是我的意思...

如果這是提供的數據。

1:日期時間,VAR1,VAR2 2:日期時間,VAR1,VAR2 3:日期時間,VAR1,VAR2 ....

在每個日期時間,我想找到VAR1的值在前一個DateTime處爲-var1,在前一個DateTime處爲var2-var2,並繪製它們。

回答

0

這應該工作。由於您沒有提供我創建的數據集。代碼中的註釋應解釋每個步驟的作用。隨意在評論中發佈問題。運行時

df <- data.frame(time=c("2016-05-03","2016-05-04","2016-05-05"),start=c(5,4,2),end=c(2,6,3)) 
library(dplyr) 
#get dataframe with each row minus the previous row 
df<-mutate(df, diff.end= end-lag(end),diff.start= start-lag(start)) 
#convert the date string to a date object 
dates<-format(as.Date(df$time),format="%Y-%m-%d") 
#create dataframe with just the data we want to plot 
df<-cbind(df$diff.start,df$diff.end) 
colnames(df)<-c("starting.diff","ending.diff") 
#make the dataframe a time series object 
timeseriesobj<-xts(df,order.by=as.Date(dates)) 
timeseriesobj 
#create the dygraph 
dygraph(timeseriesobj) 
#note that the first point doesnt get plotted because its starting and ending values are NA 

代碼輸出:

> df <- data.frame(time=c("2016-05-03","2016-05-04","2016-05-05"),start=c(5,4,2),end=c(2,6,3)) 
> library(dplyr) 
> #get dataframe with each row minus the previous row 
> df<-mutate(df, diff.end= end-lag(end),diff.start= start-lag(start)) 
> #convert the date string to a date object 
> dates<-format(as.Date(df$time),format="%Y-%m-%d") 
> #create dataframe with just the data we want to plot 
> df<-cbind(df$diff.start,df$diff.end) 
> colnames(df)<-c("starting.diff","ending.diff") 
> #make the dataframe a time series object 
> timeseriesobj<-xts(df,order.by=as.Date(dates)) 
> timeseriesobj 
      starting.diff ending.diff 
2016-05-03   NA   NA 
2016-05-04   -1   4 
2016-05-05   -2   -3 
> #create the dygraph 
> dygraph(timeseriesobj) 
> #note that the first point doesnt get plotted because its starting and ending values are NA