이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

fillmissing

누락된 값 채우기

설명

예제

F = fillmissing(A,'constant',v)는 배열이나 테이블의 누락된 요소를 상수 값 v로 채웁니다. A가 행렬이거나 다차원 배열인 경우 v는 스칼라 또는 벡터일 수 있습니다. v가 벡터이면 각 요소는 A의 대응하는 열의 채우기 값을 지정합니다. A가 테이블 또는 타임테이블인 경우 v는 셀형 배열일 수 있습니다.

누락된 값은 다음과 같이 A의 데이터형에 따라 정의됩니다.

  • NaNdouble형, single형, duration형, calendarDuration

  • NaTdatetime

  • <missing>string

  • <undefined>categorical

  • ' 'char

  • {''} — 문자형 배열로 구성된 cell

A가 테이블이면 각 열의 데이터형에 따라 해당 열의 누락된 값이 정의됩니다.

예제

F = fillmissing(A,method)method로 지정된 메서드를 사용하여 누락된 요소를 채웁니다. 메서드는 다음 중 하나일 수 있습니다.

  • 'previous' — 누락되지 않은 이전 값

  • 'next' — 누락되지 않은 다음 값

  • 'nearest' — 누락되지 않은 가장 가까운 값

  • 'linear' — 누락되지 않은 인접 값들의 선형 보간(숫자, duration, datetime 데이터형에만 해당)

  • 'spline' — 조각별 3차 스플라인 보간(숫자, duration, datetime 데이터형에만 해당)

  • 'pchip' — 형태 보존 조각별 3차 스플라인 보간(숫자, duration, datetime 데이터형에만 해당)

예제

F = fillmissing(A,movmethod,window)는 윈도우 길이가 window인 이동 윈도우 평균 또는 중앙값을 사용하여 누락된 항목을 채웁니다. 예를 들어, fillmissing(A,'movmean',5)는 윈도우 길이 5를 사용한 이동평균으로 데이터를 채웁니다.

예제

F = fillmissing(___,dim)은 함수 동작이 수행될 A의 차원을 지정합니다. 기본적으로 fillmissing은 크기가 1이 아닌 첫 번째 차원을 따라 동작합니다. 예를 들어, A가 행렬인 경우 fillmissing(A,2)는 누락된 데이터를 행 방향으로 채우면서 A의 열 전체에 대해 동작합니다.

예제

F = fillmissing(___,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 누락된 값을 채우기 위한 추가 파라미터를 지정합니다. 예를 들어, t가 시간 값의 벡터인 경우 fillmissing(A,'linear','SamplePoints',t)t에 상대적인 A의 데이터를 보간합니다.

예제

[F,TF] = fillmissing(___)은 채워진 A의 요소에 대응하는 논리형 배열도 반환합니다.

예제

모두 축소

NaN 값이 포함된 벡터를 만든 다음 각각의 NaN을 누락되지 않은 이전 값으로 바꿉니다.

A = [1 3 NaN 4 NaN NaN 5];
F = fillmissing(A,'previous')
F = 1×7

     1     3     3     4     4     4     5

균일하지 않게 샘플링된 데이터의 NaN 값을 보간을 사용하여 바꿉니다.

균일하지 않은 샘플 점으로 구성된 벡터를 정의하고 이들 점에 대해 사인 함수를 실행합니다.

x = [-4*pi:0.1:0, 0.1:0.2:4*pi];
A = sin(x);

ANaN 값을 넣습니다.

A(A < 0.75 & A > 0.5) = NaN;

선형 보간을 사용하여 누락된 데이터를 채운 다음, 채워진 벡터 F와 논리형 벡터 TF를 반환합니다. TF의 요소에서 값 1(true)의 위치는 F에서 채워진 요소의 위치에 해당합니다.

[F,TF] = fillmissing(A,'linear','SamplePoints',x);

원래 데이터와 채워진 데이터를 플로팅합니다.

plot(x,A,'.', x(TF),F(TF),'o')
xlabel('x');
ylabel('sin(x)')
legend('Original Data','Filled Missing Data')

이동 중앙값을 사용하여 누락된 숫자형 데이터를 채웁니다.

샘플 점 x의 벡터와 누락된 값이 들어 있는 데이터의 벡터 A를 만듭니다.

x = linspace(0,10,200); 
A = sin(x) + 0.5*(rand(size(x))-0.5); 
A([1:10 randi([1 length(x)],1,50)]) = NaN; 

윈도우 길이가 10인 이동 중앙값을 사용하여 ANaN 값을 바꾸고 원래 데이터와 채워진 데이터를 둘 다 플로팅합니다.

F = fillmissing(A,'movmedian',10);  
plot(x,F,'r.-',x,A,'b.-') 
legend('Filled Missing Data','Original Data')

누락된 요소가 있는 행렬을 만든 다음, 선형 보간을 사용하여 한 번에 한 행씩 열(2번째 차원) 전체를 채웁니다. 각 행에서, 선행 누락된 값과 후행 누락된 값을 해당 행에서 누락되지 않은 가장 가까운 값으로 채웁니다.

A = [NaN NaN 5 3 NaN 5 7 NaN 9 NaN;
     8 9 NaN 1 4 5 NaN 5 NaN 5;
     NaN 4 9 8 7 2 4 1 1 NaN]
A = 3×10

   NaN   NaN     5     3   NaN     5     7   NaN     9   NaN
     8     9   NaN     1     4     5   NaN     5   NaN     5
   NaN     4     9     8     7     2     4     1     1   NaN

F = fillmissing(A,'linear',2,'EndValues','nearest')
F = 3×10

     5     5     5     3     4     5     7     8     9     9
     8     9     5     1     4     5     5     5     5     5
     4     4     9     8     7     2     4     1     1     1

서로 다른 데이터형을 갖는 테이블 변수의 누락된 값을 채웁니다.

categorical, double, char 데이터형의 변수로 구성된 테이블을 만듭니다.

A = table(categorical({'Sunny';'Cloudy';''}),[66;NaN;54],{'';'N';'Y'},[37;39;NaN],...
    'VariableNames',{'Description' 'Temperature' 'Rain' 'Humidity'})
A=3×4 table
    Description    Temperature    Rain    Humidity
    ___________    ___________    ____    ________

    Sunny               66        ''         37   
    Cloudy             NaN        'N'        39   
    <undefined>         54        'Y'       NaN   

모든 누락된 요소를 이전 요소의 값으로 바꿉니다. Rain 변수에는 이전 요소가 없으므로, 누락된 문자형 벡터가 바뀌지 않습니다.

F = fillmissing(A,'previous')
F=3×4 table
    Description    Temperature    Rain    Humidity
    ___________    ___________    ____    ________

      Sunny            66         ''         37   
      Cloudy           66         'N'        39   
      Cloudy           54         'Y'        39   

ATemperature 변수와 Humidity 변수의 NaN 값을 0으로 바꿉니다.

F = fillmissing(A,'constant',0,'DataVariables',{'Temperature','Humidity'})
F=3×4 table
    Description    Temperature    Rain    Humidity
    ___________    ___________    ____    ________

    Sunny              66         ''         37   
    Cloudy              0         'N'        39   
    <undefined>        54         'Y'         0   

또는 isnumeric 함수를 사용하여 동작을 수행할 숫자형 변수를 식별할 수도 있습니다.

F = fillmissing(A,'constant',0,'DataVariables',@isnumeric)
F=3×4 table
    Description    Temperature    Rain    Humidity
    ___________    ___________    ____    ________

    Sunny              66         ''         37   
    Cloudy              0         'N'        39   
    <undefined>        54         'Y'         0   

입력 인수

모두 축소

입력 데이터로, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 지정됩니다.

A가 timetable형이면 테이블 값만 채워집니다. 행 시간값으로 구성된 관련 벡터에 NaT 값이나 NaN 값이 포함되어 있으면 fillmissing은 오류를 생성합니다. 행 시간값은 고유해야 하며 오름차순으로 나열되어야 합니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | table | timetable | categorical | datetime | duration | calendarDuration

채우기 상수로, 스칼라, 벡터 또는 셀형 배열로 지정됩니다. A가 행렬이거나 다차원 배열인 경우 v는 벡터일 수 있습니다. A가 테이블 또는 타임테이블인 경우 v는 셀형 배열일 수 있습니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | cell | categorical | datetime | duration

채우기 메서드로, 다음 중 하나로 지정됩니다.

메서드설명
'previous'누락되지 않은 이전 값
'next'누락되지 않은 다음 값
'nearest'누락되지 않은 가장 가까운 값
'linear'누락되지 않은 인접 값들의 선형 보간(숫자, duration, datetime 데이터형에만 해당)
'spline'조각별 3차 스플라인 보간(숫자, duration, datetime 데이터형에만 해당)
'pchip'형태 보존 조각별 3차 스플라인 보간(숫자, duration, datetime 데이터형에만 해당)
'makima'아키마 3차 에르미트 다항식 변형 보간(숫자형, durationdatetime 데이터형에만 해당)

누락된 데이터를 채울 이동 메서드로, 다음 중 하나로 지정됩니다.

메서드설명
'movmean'길이가 window인 윈도우에 걸친 이동평균(숫자 데이터형의 경우에만 해당)
'movmedian'길이가 window인 윈도우에 걸친 이동 중앙값(숫자 데이터형의 경우에만 해당)

윈도우 길이로, 양의 정수 스칼라, 양의 정수로 구성된 요소를 2개 가진 벡터, 양의 duration형 스칼라 또는 양의 duration형으로 구성된 요소를 2개 가진 벡터로 지정됩니다.

window가 양의 정수 스칼라인 경우 윈도우는 현재 요소의 인근 지점에 중심을 두며, window-1개의 인접 요소를 가집니다. window가 짝수이면 윈도우의 중심은 현재 요소 및 이전 요소가 됩니다. window가 양의 정수로 구성된 요소를 2개 가진 벡터 [b f]인 경우 윈도우에는 현재 요소, 현재 요소의 역방향으로 b개 요소, 그리고 현재 요소의 정방향으로 f개 요소가 들어 있습니다.

A가 timetable형이거나 'SamplePoints'datetime형 또는 duration형 벡터로 지정된 경우 windowduration형이어야 하며, 윈도우는 샘플 점을 기준으로 하여 계산됩니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | duration

함수 동작이 수행될 차원으로, 양의 정수 스칼라로 지정됩니다. 값이 지정되지 않은 경우 디폴트 값은 크기가 1이 아닌 첫 번째 배열 차원이 됩니다.

A가 table형 또는 timetable형이면 dim이 지원되지 않습니다. fillmissing은 각 테이블 변수나 타임테이블 변수를 따라 동작합니다.

2차원 입력 배열 A가 있다고 가정하겠습니다.

  • dim=1이면 fillmissingA를 열 방향으로 채웁니다.

  • dim=2이면 fillmissingA를 행 방향으로 채웁니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: fillmissing(A,'DataVariables',{'Temperature','Altitude'})는 입력 테이블의 Temperature 변수와 Altitude 변수에 해당하는 열만 채웁니다.

끝점 처리 메서드로, 'EndValues'와 함께 'extrap', 'previous', 'next', 'nearest', 'none', 상수 스칼라 값 중 하나가 쉼표로 구분되어 지정됩니다. 끝점 채우기 메서드는 선행 누락된 값과 후행 누락된 값을 다음 정의에 따라 처리합니다.

메서드설명
'extrap'method와 동일함
'previous'누락되지 않은 이전 값
'next'누락되지 않은 다음 값
'nearest'누락되지 않은 가장 가까운 값
'none'채우기 값 없음
스칼라상수 값(숫자, duration, datetime 데이터형에만 해당)

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | datetime | duration

채우기 메서드를 위한 샘플 점으로, 쉼표로 구분된 'SamplePoints'와 벡터의 쌍으로 지정됩니다. A에서의 데이터 위치를 나타내는 샘플 점으로, 고유한 요소를 포함한 상태로 저장되어야 합니다. 샘플 점은 균일하게 샘플링할 필요가 없습니다. A가 timetable형인 경우 디폴트 샘플 점 벡터는 행 시간값으로 구성된 벡터로 이루어집니다. 그렇지 않으면 디폴트 벡터는 [1 2 3 ...]입니다.

이동 윈도우는 샘플 점에 대해 상대적으로 정의됩니다. 예를 들어, t가 입력 데이터에 해당하는 시간 벡터인 경우 fillmissing(rand(1,10),'movmean',3,'SamplePoints',t)t(i)-1.5 ~ t(i)+1.5 범위의 시간 구간을 나타내는 윈도우를 가집니다.

샘플 점 벡터에 데이터형 datetime 또는 duration이 있는 경우 이동 윈도우 길이는 duration형이어야 합니다.

입력 데이터가 timetable형인 경우 이름-값 쌍이 지원되지 않습니다.

데이터형: double | single | datetime | duration

채울 테이블 변수로, 'DataVariables'와 함께 변수 이름, 변수 이름으로 구성된 셀형 배열, 숫자형 벡터, 논리형 벡터 또는 함수 핸들이 쉼표로 구분되어 지정됩니다. 'DataVariables' 값은 입력 테이블에서 채울 열을 나타내며, 다음 중 하나일 수 있습니다.

  • 단일 테이블 변수 이름을 지정하는 문자형 벡터

  • 각 요소가 테이블 변수 이름인, 문자형 벡터로 구성된 셀형 배열

  • 테이블 변수 인덱스로 구성된 벡터

  • 각각의 요소가 테이블 변수에 해당하는 논리형 벡터. 여기서 true는 해당하는 변수를 포함하고 false는 해당하는 변수를 제외합니다.

  • 논리형 스칼라를 반환하는 함수 핸들(예: @isnumeric)

예: 'Age'

예: {'Height','Weight'}

예: @iscategorical

데이터형: char | cell | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | function_handle

알려진 누락 표시자로, 'MissingLocations', 그리고 A와 크기가 같은 논리형 벡터, 행렬 또는 다차원 배열이 쉼표로 구분되어 지정됩니다. 표시자 요소는 A의 대응 위치에 누락된 값이 있음을 나타내는 true이거나, 그렇지 않은 경우 false일 수 있습니다.

데이터형: logical

출력 인수

모두 축소

채워진 데이터로, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 반환됩니다. FA와 크기가 같습니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | table | timetable | categorical | datetime | duration | calendarDuration

채워진 데이터 표시자로, 벡터, 행렬 또는 다차원 배열로 반환됩니다. TF는 논리형 배열로, 1(true)이 있는 위치가 채워진 F의 요소 위치에 해당하고 0(false)이 있는 위치가 변경되지 않은 요소 위치에 해당합니다. TFAF와 크기가 같습니다.

데이터형: logical

확장 기능

R2016b에 개발됨