[R] Aggregate rainfall data
roslinazairimah zakaria
roslinaump at gmail.com
Wed Jul 13 00:45:26 CEST 2016
Dear R-users,
I have these data:
head(balok, 10); tail(balok, 10)
Date Time Rain.mm
1 30/7/2008 9:00:00 0
2 30/7/2008 10:00:00 0
3 30/7/2008 11:00:00 0
4 30/7/2008 12:00:00 0
5 30/7/2008 13:00:00 0
6 30/7/2008 14:00:00 0
7 30/7/2008 15:00:00 0
8 30/7/2008 16:00:00 0
9 30/7/2008 17:00:00 0
10 30/7/2008 18:00:00 0
Date Time Rain.mm
63667 4/11/2015 3:00:00 0
63668 4/11/2015 4:00:00 0
63669 4/11/2015 5:00:00 0
63670 4/11/2015 6:00:00 0
63671 4/11/2015 7:00:00 0
63672 4/11/2015 8:00:00 0
63673 4/11/2015 9:00:00 0.1
63674 4/11/2015 10:00:00 0.1
63675 4/11/2015 11:00:00 0.1
63676 4/11/2015 12:00:00 0.1?
> str(balok)
'data.frame': 63676 obs. of 3 variables:
$ Date : Factor w/ 2654 levels "1/1/2009","1/1/2010",..: 2056 2056 2056
2056 2056 2056 2056 2056 2056 2056 ...
$ Time : Factor w/ 24 levels "1:00:00","10:00:00",..: 24 2 3 4 5 6 7 8 9
10 ...
$ Rain.mm: Factor w/ 352 levels "0","0.0?","0.1",..: 1 1 1 1 1 1 1 1 1 1
...
and I have change the data as follows:
realdate <- as.Date(balok$Date,format="%d/%m/%Y")
dfdate <- data.frame(date=realdate)
year=as.numeric (format(realdate,"%Y"))
month=as.numeric (format(realdate,"%m"))
day=as.numeric (format(realdate,"%d"))
balok2 <-cbind(dfdate,day,month,year,balok[,2:3])
colnames(balok2)
head(balok2)
date day month year Time Rain.mm
1 2008-07-30 30 7 2008 9:00:00 0
2 2008-07-30 30 7 2008 10:00:00 0
3 2008-07-30 30 7 2008 11:00:00 0
4 2008-07-30 30 7 2008 12:00:00 0
5 2008-07-30 30 7 2008 13:00:00 0
6 2008-07-30 30 7 2008 14:00:00 0
...
> balok3 <- balok2[,-1]; head(balok3, n=100)
day month year Time Rain.mm
1 30 7 2008 9:00:00 0
2 30 7 2008 10:00:00 0
3 30 7 2008 11:00:00 0
4 30 7 2008 12:00:00 0
5 30 7 2008 13:00:00 0
6 30 7 2008 14:00:00 0
7 30 7 2008 15:00:00 0
8 30 7 2008 16:00:00 0
9 30 7 2008 17:00:00 0
10 30 7 2008 18:00:00 0
11 30 7 2008 19:00:00 0
12 30 7 2008 20:00:00 0
13 30 7 2008 21:00:00 0
14 30 7 2008 22:00:00 0
15 30 7 2008 23:00:00 0
16 30 7 2008 24:00:00 0
17 31 7 2008 1:00:00 0
18 31 7 2008 2:00:00 0
19 31 7 2008 3:00:00 0
20 31 7 2008 4:00:00 0
21 31 7 2008 5:00:00 0
22 31 7 2008 6:00:00 0
23 31 7 2008 7:00:00 0
24 31 7 2008 8:00:00 0
25 31 7 2008 9:00:00 0
26 31 7 2008 10:00:00 0
27 31 7 2008 11:00:00 0
28 31 7 2008 12:00:00 0
29 31 7 2008 13:00:00 0
30 31 7 2008 14:00:00 0
31 31 7 2008 15:00:00 0
32 31 7 2008 16:00:00 0
33 31 7 2008 17:00:00 0
34 31 7 2008 18:00:00 0
35 31 7 2008 19:00:00 0
36 31 7 2008 20:00:00 0
37 31 7 2008 21:00:00 0
38 31 7 2008 22:00:00 0
39 31 7 2008 23:00:00 0
40 31 7 2008 24:00:00 0
41 1 8 2008 1:00:00 0
42 1 8 2008 2:00:00 0
43 1 8 2008 3:00:00 0
44 1 8 2008 4:00:00 0
45 1 8 2008 5:00:00 0
46 1 8 2008 6:00:00 0
47 1 8 2008 7:00:00 0
48 1 8 2008 8:00:00 0
49 1 8 2008 9:00:00 0
50 1 8 2008 10:00:00 0
51 1 8 2008 11:00:00 0
52 1 8 2008 12:00:00 0
53 1 8 2008 13:00:00 0
54 1 8 2008 14:00:00 0
55 1 8 2008 15:00:00 0
56 1 8 2008 16:00:00 0
57 1 8 2008 17:00:00 0
58 1 8 2008 18:00:00 0
59 1 8 2008 19:00:00 0
60 1 8 2008 20:00:00 0
61 1 8 2008 21:00:00 0
62 1 8 2008 22:00:00 0
63 1 8 2008 23:00:00 0
64 1 8 2008 24:00:00 0
65 2 8 2008 1:00:00 0
66 2 8 2008 2:00:00 0
67 2 8 2008 3:00:00 0
68 2 8 2008 4:00:00 0
69 2 8 2008 5:00:00 0
70 2 8 2008 6:00:00 0
71 2 8 2008 7:00:00 0
72 2 8 2008 8:00:00 0
73 2 8 2008 9:00:00 0
74 2 8 2008 10:00:00 0
75 2 8 2008 11:00:00 0
76 2 8 2008 12:00:00 0
77 2 8 2008 13:00:00 0
78 2 8 2008 14:00:00 0
79 2 8 2008 15:00:00 0
80 2 8 2008 16:00:00 0
81 2 8 2008 17:00:00 0
82 2 8 2008 18:00:00 0
83 2 8 2008 19:00:00 0
84 2 8 2008 20:00:00 0
85 2 8 2008 21:00:00 0
86 2 8 2008 22:00:00 0
87 2 8 2008 23:00:00 0
88 2 8 2008 24:00:00 11.1
89 3 8 2008 1:00:00 0.4
90 3 8 2008 2:00:00 0
91 3 8 2008 3:00:00 0
92 3 8 2008 4:00:00 0
93 3 8 2008 5:00:00 0
94 3 8 2008 6:00:00 0
95 3 8 2008 7:00:00 0
96 3 8 2008 8:00:00 0
97 3 8 2008 9:00:00 0
98 3 8 2008 10:00:00 0
99 3 8 2008 11:00:00 0
100 3 8 2008 12:00:00 0
The rainfall data is in hourly unit, and I would like to sum the Rain.mm
according to month. I tried to use aggregate(), but I got this message:
dt <- balok4
str(dt)
aggbalok <- aggregate(dt[,5], by=dt[,c(1,4)],FUN=sum, na.rm=TRUE)
aggbalok
Error in Summary.factor(1L, na.rm = TRUE) :
sum not meaningful for factors
Thank you so much for any help given.
Roslina
[[alternative HTML version deleted]]
More information about the R-help
mailing list