2012-12-17 4 views
1

입니다. 나는 시계열을 가지고 있으며, 평균 1 시간마다 자동으로 평균을 수행하고 싶었습니다. 데이터에 온도와 날짜가 포함되어 있습니다.
이동 평균이 필요하지 않습니다. 데이터의 빈도는 대개 2 분이므로 평균 1, 2, 3, 4, ... 시가 있습니다. 하루. 데이터 집합을 가정시간과 날짜를 기준으로 한 시계열의 평균은 R

temperature date_time 
1  -1.52 2007-09-29 00:00:08 
2  -1.48 2007-09-29 00:02:08 
3  -1.46 2007-09-29 00:04:08 
4  -1.56 2007-09-29 00:06:08 
5  -1.64 2007-09-29 00:08:08 
6  -1.75 2007-09-29 00:10:08 
7  -1.74 2007-09-29 00:12:08 
8  -2.02 2007-09-29 00:14:08 
9  -2.02 2007-09-29 00:16:08 
10 -1.90 2007-09-29 00:18:08 
11 -1.66 2007-09-29 00:20:08 
12 -1.80 2007-09-29 00:22:08 
13 -1.68 2007-09-29 00:24:08 
14 -1.81 2007-09-29 00:26:08 
15 -1.77 2007-09-29 00:28:08 
16 -1.83 2007-09-29 00:30:08 
17 -1.84 2007-09-29 00:32:08 
18 -1.93 2007-09-29 00:34:08 
19 -1.62 2007-09-29 00:36:08 
20 -1.87 2007-09-29 00:38:08 
21 -1.54 2007-09-29 00:40:08 
22 -1.93 2007-09-29 00:42:08 
23 -1.88 2007-09-29 00:44:08 
24 -1.82 2007-09-29 00:46:08 
25 -1.78 2007-09-29 00:48:08 
26 -1.67 2007-09-29 00:50:08 
27 -1.67 2007-09-29 00:52:08 
28 -1.56 2007-09-29 00:54:08 
29 -1.84 2007-09-29 00:56:08 
30 -1.74 2007-09-29 00:58:08 
31 -1.79 2007-09-29 01:00:08 
32 -1.82 2007-09-29 01:02:08 
33 -1.78 2007-09-29 01:04:08 
34 -1.88 2007-09-29 01:06:08 
35 -1.84 2007-09-29 01:08:08 
36 -1.78 2007-09-29 01:10:08 
37 -1.94 2007-09-29 01:12:08 
38 -1.80 2007-09-29 01:14:08 
39 -1.74 2007-09-29 01:16:08 
40 -1.76 2007-09-29 01:18:08 
41 -1.80 2007-09-29 01:20:08 
42 -1.60 2007-09-29 01:22:08 
43 -1.59 2007-09-29 01:24:08 
44 -1.52 2007-09-29 01:26:08 
45 -1.41 2007-09-29 01:28:08 
46 -1.42 2007-09-29 01:30:08 
47 -1.44 2007-09-29 01:32:08 
48 -1.38 2007-09-29 01:34:08 
49 -1.34 2007-09-29 01:36:08 
50 -1.40 2007-09-29 01:38:08 
51 -1.40 2007-09-29 01:40:08 
52 -1.48 2007-09-29 01:42:08 
53 -1.36 2007-09-29 01:44:08 
54 -1.42 2007-09-29 01:46:08 
55 -1.46 2007-09-29 01:48:08 
56 -1.46 2007-09-29 01:50:08 
57 -1.47 2007-09-29 01:52:08 
58 -1.50 2007-09-29 01:54:08 
59 -1.51 2007-09-29 01:56:08 
60 -1.49 2007-09-29 01:58:08 
61 -1.54 2007-09-29 02:00:08 
62 -1.50 2007-09-29 02:02:08 
63 -1.55 2007-09-29 02:04:08 
64 -1.52 2007-09-29 02:06:08 
65 -1.66 2007-09-29 02:08:08 
66 -1.88 2007-09-29 02:10:08 
67 -1.72 2007-09-29 02:12:08 
68 -1.68 2007-09-29 02:14:08 
69 -1.68 2007-09-29 02:16:08 
70 -1.60 2007-09-29 02:18:08 
71 -1.71 2007-09-29 02:20:08 
72 -1.71 2007-09-29 02:22:08 
73 -1.80 2007-09-29 02:24:08 
74 -1.76 2007-09-29 02:26:08 
75 -1.84 2007-09-29 02:28:08 
76 -1.96 2007-09-29 02:30:08 
77 -2.06 2007-09-29 02:32:08 
78 -2.16 2007-09-29 02:34:08 
79 -2.04 2007-09-29 02:36:08 
80 -1.93 2007-09-29 02:38:08 
81 -1.98 2007-09-29 02:40:08 
82 -1.86 2007-09-29 02:42:08 
83 -2.08 2007-09-29 02:44:08 
84 -1.78 2007-09-29 02:46:08 
85 -1.50 2007-09-29 02:48:08 
86 -1.60 2007-09-29 02:50:08 
87 -1.53 2007-09-29 02:52:08 
88 -1.76 2007-09-29 02:54:08 
89 -1.64 2007-09-29 02:56:08 
90 -1.52 2007-09-29 02:58:08 
91 -1.82 2007-09-29 03:00:08 
+0

데이터를 보면 1. 다른 날짜는 표시되지 않습니다 2. 하루 평균 시간당 평균값을 원하십니까? – bonCodigo

+2

[무엇을 시도 했습니까?] (http://mattgemmell.com/2008/12/08/what-have-you-tried/)? – MattLBeck

+0

데이터 샘플링의 빈도는 2 분입니다. 질문에 약 5 개월 동안의 모든 데이터를 추가하는 것이 합리적이라고 생각하십니까? 나는 매일 평균 시간을 갖고 싶다. –

답변

9

temp라고하고 "DATE_TIME"변수는, 말, as.POSIXlt(temp$date_time)를 사용하여 적절한 날짜 형식 (수행입니다, 당신은 단순히 시간당 요약 얻을 aggregatecut를 사용할 수 있습니다

aggregate(list(temperature = temp$temperature), 
      list(hourofday = cut(temp$date_time, "1 hour")), 
      mean) 
#    hourofday temperature 
# 1 2007-09-29 00:00:00 -1.744333 
# 2 2007-09-29 01:00:00 -1.586000 
# 3 2007-09-29 02:00:00 -1.751667 
# 4 2007-09-29 03:00:00 -1.820000 
을 당신은 시간 시리즈를 조작하기 때문에, 당신은 내가 당신의 데이터를 가정 여기

패키지 XTS (또는 동물원, 또는 TS)를 사용할 수 는

+0

ggplot을 통해 어떻게 계획 할 수 있습니까? –

+5

@ user1885733 아니요, 안합니다. 하지만 당신은 "[r] ggplot 매시간 연속 플롯"또는 비슷한 결과를 얻을 수있는 스택 오버플로를 검색 할 수 있습니다 (http://stackoverflow.com/q/13649019/1270695). 당신이해야 할 일을하는 방법을 알아내는 데 도움이되는 질문과 답변. – A5C1D2H2I1M1N2O1R2T1

6

입니다 :

head(dat) 
    V2   V3  V4 
2 -1.52 2007-09-29 00:00:08 
3 -1.48 2007-09-29 00:02:08 
4 -1.46 2007-09-29 00:04:08 
5 -1.56 2007-09-29 00:06:08 
6 -1.64 2007-09-29 00:08:08 
7 -1.75 2007-09-29 00:10:08 

우선 그때 I이 적용 나머지 가족 유사 period.apply 사용

library(xts) 
    dat.xts <- xts(x = dat$V2,as.POSIXct(paste(dat$V3,dat$V4))) 


head(dat.xts) 
        [,1] 
2007-09-29 00:00:08 -1.52 
2007-09-29 00:02:08 -1.48 
2007-09-29 00:04:08 -1.46 
2007-09-29 00:06:08 -1.56 
2007-09-29 00:08:08 -1.64 
2007-09-29 00:10:08 -1.75 

는, 데이터의 변속 세트를 주어진 특정 함수 값을 계산하는 단계

ep <- endpoints(dat.xts,'hours') 
period.apply(dat.xts,ep,mean) 
         [,1] 
2007-09-29 00:58:08 -1.744333 
2007-09-29 01:58:08 -1.586000 
2007-09-29 02:58:08 -1.751667 
2007-09-29 03:00:08 -1.820000 
값 변수 XTS를 구축

주 평균을 계산하려면 예를 들어 방금 ep (끝점)를 변경하십시오.

ep <- endpoints(dat.xts,'weeks') 
period.apply(dat.xts,ep,mean) 

        [,1] 
2007-09-29 03:00:08 -1.695385 

plot(dat.xts) 

enter image description here

관련 문제