타임테이블의 데이터를 리샘플링하고 집계하기
이 예제에서는 타임테이블의 데이터를 리샘플링하고 집계하는 방법을 보여줍니다. 타임테이블은 각 행에 시간값을 연결하는 테이블의 한 유형입니다. 타임테이블은 각 변수에 동일한 개수의 행이 있는 경우, 다양한 데이터형과 데이터 크기를 포함하는 열 방향 데이터 변수를 저장할 수 있습니다. retime
함수를 사용하면 타임테이블 데이터를 리샘플링하거나, 사용자가 지정한 시간 구간별로 타임테이블 데이터를 집계할 수 있습니다.
타임테이블 가져오기
2015년 11월 15일부터 2015년 11월 19일까지 얻어진 날씨 측정값이 포함된 타임테이블을 불러옵니다. 타임테이블에는 이 기간에 걸쳐 측정한 습도, 기온, 기압 값이 포함되어 있습니다.
load outdoors
outdoors(1:5,:)
ans=5×3 timetable
Time Humidity TemperatureF PressureHg
___________________ ________ ____________ __________
2015-11-15 00:00:24 49 51.3 29.61
2015-11-15 01:30:24 48.9 51.5 29.61
2015-11-15 03:00:24 48.9 51.5 29.61
2015-11-15 04:30:24 48.8 51.5 29.61
2015-11-15 06:00:24 48.7 51.5 29.6
타임테이블이 규칙적인지 확인합니다. 규칙적인 타임테이블은 연속된 모든 행 시간값 사이의 차이가 동일한 테이블을 말합니다. outdoors
는 규칙적인 타임테이블이 아닙니다.
TF = isregular(outdoors)
TF = logical
0
시간 스텝 간의 차이를 구합니다. 시간 스텝 간의 차이는 최소 30초에서 최대 1시간 30분까지 다양합니다.
dt = unique(diff(outdoors.Time))
dt = 3x1 duration
00:00:24
01:29:36
01:30:00
보간으로 타임테이블 리샘플링하기
retime
함수를 사용하여 타임테이블의 데이터를 조정합니다. 시간별 시간 벡터를 지정합니다. 새로운 행 시간값으로 타임테이블 데이터를 보간합니다.
TT = retime(outdoors,"hourly","spline"); TT(1:5,:)
ans=5×3 timetable
Time Humidity TemperatureF PressureHg
___________________ ________ ____________ __________
2015-11-15 00:00:00 49.001 51.298 29.61
2015-11-15 01:00:00 48.909 51.467 29.61
2015-11-15 02:00:00 48.902 51.51 29.61
2015-11-15 03:00:00 48.9 51.5 29.61
2015-11-15 04:00:00 48.844 51.498 29.611
최근접이웃 값으로 타임테이블 리샘플링하기
TT
에 대해 시간별 시간 벡터를 지정합니다. TT
의 각 행마다 outdoors
에서 행 시간값이 가장 가까운 대응하는 행에 있는 값을 복사합니다.
TT = retime(outdoors,"hourly","nearest"); TT(1:5,:)
ans=5×3 timetable
Time Humidity TemperatureF PressureHg
___________________ ________ ____________ __________
2015-11-15 00:00:00 49 51.3 29.61
2015-11-15 01:00:00 48.9 51.5 29.61
2015-11-15 02:00:00 48.9 51.5 29.61
2015-11-15 03:00:00 48.9 51.5 29.61
2015-11-15 04:00:00 48.8 51.5 29.61
타임테이블 데이터를 집계하고 일별 평균 계산하기
retime
함수는 mean
과 같은 집계 방법을 제공합니다. outdoors
에 있는 데이터의 일별 평균을 계산합니다.
TT = retime(outdoors,"daily","mean"); TT
TT=4×3 timetable
Time Humidity TemperatureF PressureHg
___________________ ________ ____________ __________
2015-11-15 00:00:00 48.931 51.394 29.607
2015-11-16 00:00:00 47.924 51.571 29.611
2015-11-17 00:00:00 48.45 51.238 29.613
2015-11-18 00:00:00 49.5 50.8 29.61
타임테이블 데이터를 규칙적인 시간 간격으로 조정하기
6시간 간격으로 평균을 계산합니다. "regular"
입력 인수와 TimeStep
이름-값 인수를 사용하여 규칙적인 시간 스텝을 지정해 보겠습니다.
TT = retime(outdoors,"regular","mean",TimeStep=hours(6)); TT(1:5,:)
ans=5×3 timetable
Time Humidity TemperatureF PressureHg
___________________ ________ ____________ __________
2015-11-15 00:00:00 48.9 51.45 29.61
2015-11-15 06:00:00 48.9 51.45 29.6
2015-11-15 12:00:00 49.025 51.45 29.61
2015-11-15 18:00:00 48.9 51.225 29.607
2015-11-16 00:00:00 48.5 51.4 29.61
또는 시간 간격이 6시간으로 동일한 시간 벡터를 지정할 수 있습니다. 타임테이블을 표시할 때 날짜와 시간이 모두 표시되도록 시간 벡터의 형식을 지정합니다.
tv = datetime(2015,11,15):hours(6):datetime(2015,11,18); tv.Format = "dd-MMM-yyyy HH:mm:ss"; TT = retime(outdoors,tv,"mean"); TT(1:5,:)
ans=5×3 timetable
Time Humidity TemperatureF PressureHg
____________________ ________ ____________ __________
15-Nov-2015 00:00:00 48.9 51.45 29.61
15-Nov-2015 06:00:00 48.9 51.45 29.6
15-Nov-2015 12:00:00 49.025 51.45 29.61
15-Nov-2015 18:00:00 48.9 51.225 29.607
16-Nov-2015 00:00:00 48.5 51.4 29.61
참고 항목
timetable
| table2timetable
| synchronize
| retime