2

Rスクリプトを使用して、データベースから値を読み取りました。値には、次のデータ フレームが含まれます。

>values #return the output as follows

ID           Date      Hour      Value
1          2013-06-01    8           9
2          2013-06-01    9          17
3          2013-06-01   10          16
4          2013-06-01   11          21
5          2013-06-01   12          19
6          2013-06-01   13          15
7          2013-06-01   14          14
8          2013-06-01   15          14
9          2013-06-01   16          21
10         2013-06-01   17          22
11         2013-06-01   18          13
12         2013-06-01   19           2
13         2013-06-01   20           2
14         2013-06-01   21           1
15         2013-06-01   22           1
16         2013-06-01   23           1
17         2013-06-02    0           0
18         2013-06-02    1           0
19         2013-06-02    2           0
20         2013-06-02    3           1
21         2013-06-02    4           0
22         2013-06-02    5           0
23         2013-06-02    6           1
24         2013-06-02    7           1
25         2013-06-02    8          20
26         2013-06-02    9          21
27         2013-06-02   10          21
28         2013-06-02   11          15
29         2013-06-02   12          12
30         2013-06-02   13          11
31         2013-06-02   14          10
32         2013-06-02   15          16
33         2013-06-02   16          21
34         2013-06-02   17          22
35         2013-06-02   18          18
36         2013-06-02   19           9
37         2013-06-02   20           2
38         2013-06-02   21           0
39         2013-06-02   23           0

データフレームで欠落している時間を見つけて、日付の欠落している時間の値に 0 を追加したいと考えています。
例:
上記のデータフレームから、日付 2013-06-02 の時間 22 が欠落しています。21時から23時の間に行を挿入したい

ID           Date      Hour      Value
39         2013-06-02    22         0

どうすればこれを達成できますか?

私は次のように試しました:

私は時間リストを持っています

>hours<-c(0:23)
> hours #return as follows
 [1]  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

>i<-values$Hour[1]+1
>count<-nrow(values)
>for(j in 1:count){
+h<-values$Hour[j]
+hr<-hours[i]
+if(h != hr)
+{
+#write code to insert row
+}
+i<-i+1
+if(i==25)
+{
+i<-c(1)
+}
+}

私を助けてください...

4

2 に答える 2