2016-02-09 53 views
1

我有兩個時間序列小時分辨率現在我想比較負載時間序列與容量時間序列並計算負載大於容量的小時數。所以要知道每個小時是否有足夠的容量來滿足負載。並且在沒有足夠容量的情況下計算確切的差異。比較兩個時間序列

library(xts) 
load<-c(81,81,82,98,81,67,90,92,75,78,83,83,83,43,97,92,72,85,62) 
capacity<-c(78,97,78,65,45,98,67,109,78,109,52,42,97,87,83,90,99,89,125) 
time1<-seq(from=as.POSIXct("2013-01-01 00:00"),to=as.POSIXct("2013-01-01  18:00"),by="hour") 
dat0<-data.frame(load,capacity) 
df1<-xts(dat0,order.by=time1) 

df1 
        load capacity 
2013-01-01 00:00:00 81  78 
2013-01-01 01:00:00 81  97 
2013-01-01 02:00:00 82  78 
2013-01-01 03:00:00 98  65 
2013-01-01 04:00:00 81  45 
2013-01-01 05:00:00 67  98 
2013-01-01 06:00:00 90  67 
2013-01-01 07:00:00 92  109 
2013-01-01 08:00:00 75  78 
2013-01-01 09:00:00 78  109 
2013-01-01 10:00:00 83  52 
2013-01-01 11:00:00 83  42 
2013-01-01 12:00:00 83  97 
2013-01-01 13:00:00 43  87 
2013-01-01 14:00:00 97  83 
2013-01-01 15:00:00 92  90 
2013-01-01 16:00:00 72  99 
2013-01-01 17:00:00 85  89 
2013-01-01 18:00:00 62  125 

我只是想知道什麼是最快的方式來計算它。我需要比較10年的數據。

回答

1

我建議使用dplyr它在大型數據集上運行速度相當快。看看下面這段代碼,並確保看看官方Introduction to dplyr

library(dplyr) 

## difference between capacity and load 
dat0 %>% 
    mutate(diff = capacity - load) -> dat1 

## count hours with sufficient capacity 
dat1 %>% 
    count(sufficient = diff >= 0) %>% 
    data.frame() 

這裏是第二個操作的控制檯輸出。

sufficient n 
1  FALSE 9 
2  TRUE 10 
+0

完美地工作!比常規方法快得多 – Kemel

+0

我仍然需要弄清楚如何計算確切的數字 – Kemel

+0

確切的數字是什麼? – fdetsch