Main Content

타임테이블의 데이터를 리샘플링하고 집계하기

이 예제에서는 타임테이블의 데이터를 리샘플링하고 집계하는 방법을 보여줍니다. 타임테이블은 각 행에 시간값을 연결하는 테이블의 한 유형입니다. 타임테이블은 각 변수에 동일한 개수의 행이 있는 경우, 다양한 데이터형과 데이터 크기를 포함하는 열 방향 데이터 변수를 저장할 수 있습니다. 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  

참고 항목

| | |

관련 항목