테이블이 정리되지 않고 누락된 데이터 값을 갖는 경우 여러 가지 방법으로 테이블을 정리할 수 있습니다.
먼저, summary 및 ismissing 함수와 같은 함수를 사용하여 누락된 데이터를 식별할 수 있습니다.
누락값을 식별한 후 standardizeMissing, fillmissing 또는 rmmissing 함수를 사용하여 누락값을 표준화하거나 채우거나
제거할 수 있습니다.
그런 다음 테이블을 재구성하여 테이블을 추가적으로 정리할 수 있습니다.
sortrows 또는 movevars 함수와 같은 함수를 사용하여 적합한 순서로 테이블의 행과 변수를 재정렬할 수 있습니다.
1) 파일의 데이터 검토하기
쉼표로 구분된 값(CSV) 샘플 파일 messy.csv의 데이터를 검토합니다.
데이터를 검토하려면 가져오기 툴을 사용하는 방법이 있습니다.
이 방법을 사용하면 데이터를 미리 보고 데이터를 어떻게 가져올지 지정할 수 있습니다.
가져오기 툴은 messy.csv에 5개 열이 있음을 보여줍니다. 일부 열에는 텍스트가 있고 다른 열에는 숫자형 값이 있습니다.
파일에 다음과 같은 다양한 형태의 누락된 데이터 표시자가 많이 있습니다.
* 빈 텍스트
* 마침표(.)
* NA
* NaN
* -99
가져오기 툴은 숫자형 열의 NaN이나 텍스트 열의 빈 텍스트와 같은 일부 누락된 데이터 표시자를 자동으로 인식합니다.
이 툴은 열 B에 있는 빈 텍스트, 마침표, NA와 같은 다른 표시자도 강조 표시합니다.
이러한 값은 표준 누락값이 아닙니다.
그러나 숫자형 열에 숫자형이 아닌 값이 들어 있으면 이러한 값은 누락값을 나타내는 것일 수 있습니다.
데이터를 가져올 때 이러한 값도 NaN인 것처럼 처리되도록 지정할 수 있습니다.
값 -99도 누락값을 나타내는 것으로 간주할 수 있습니다.
숫자형 데이터가 양수 값으로 구성된 경우, 누락된 데이터에 대한 플래그를 단일 음수 값으로 지정하기도 합니다.
특정 숫자(예: -99)가 테이블에서 누락된 데이터를 나타낸다면,
테이블을 정리할 때 이 숫자가 누락값임을 지정해야 합니다.
2) 데이터를 테이블로 가져오기
readtable 함수를 사용하여 파일에서 데이터를 읽어 들여 테이블로 가져올 수도 있습니다.
readtable 함수를 사용하여 messy.csv의 데이터를 가져옵니다.
텍스트 데이터를 string형 배열인 테이블 변수로 읽어오려면 "TextType" 이름-값 인수를 사용합니다.
숫자형 열에서 지정된 숫자형이 아닌 값을 누락값으로 처리하려면 "TreatAsMissing" 이름-값 인수를 사용합니다.
테이블 변수 B, D, E에서 readtable은 빈 텍스트, ., NA를 NaN 값으로 가져옵니다.
그러나 값 -99는 숫자형이므로 변경되지 않은 상태로 유지됩니다.
또한 readtable은 A와 C를 텍스트로 취급합니다.
따라서 해당 열의 빈 텍스트를 <missing>으로 표시되는 누락된 문자열로 변환합니다.
3) 테이블 요약 보기
테이블의 요약을 보려면 summary 함수를 사용합니다.
각 테이블 변수에 대해 데이터형 및 기타 기술 통계량이 표시됩니다.
예를 들어, summary는 messyTable의 각 숫자형 변수에서 누락값의 개수를 보여줍니다.
4) 누락된 값을 가지는 행 찾기
messyTable에서 누락값이 최소한 하나 있는 행을 찾으려면 ismissing 함수를 사용합니다.
데이터에 비표준 누락값(예: -99)이 있는 경우 표준 누락값과 함께 지정할 수 있습니다.
ismissing의 출력값은 messyTable에서 누락값을 갖는 요소를 식별하는 논리형 배열입니다.
누락값이 있는 행을 식별하는 논리형 벡터를 만들려면 any 함수를 사용합니다.
테이블의 요소를 참조하여 누락값이 있는 행만 반환하려면 논리형 벡터 rowsWithMissingValues를 사용합니다.
5) 누락값 채우기
테이블의 누락값을 정리하는 한 가지 전략은 누락값을 더욱 유의미한 값으로 바꾸는 것입니다.
표준 누락값을 삽입하여 비표준 누락값을 대체할 수 있습니다. 또한 누락값을 조정된 값으로 채울 수 있습니다.
예를 들어, 누락값을 최근접이웃이나 테이블 변수의 평균값으로 채울 수 있습니다.
이 예제에서 -99는 누락값을 나타내는 비표준 값입니다.
-99인 요소를 표준 누락값으로 바꾸려면 standardizeMissing 함수를 사용합니다.
단정밀도 및 배정밀도 부동소수점 숫자형 배열에서는 NaN이 표준 누락값입니다.
누락값을 채우려면 fillmissing 함수를 사용합니다. 이 함수는 누락값을 채우는 여러 방법을 제공합니다.
예를 들면 누락값이 아닌 최근접이웃으로 누락값을 채우는 새 테이블 filledTable을 반환할 수 있습니다.
6) 누락된 값을 가지는 행 제거하기
테이블의 누락값을 정리하는 또 다른 전략은 누락값이 있는 행을 제거하는 것입니다.
누락값이 있는 행을 제거하려면 rmmissing 함수를 사용합니다.
7) 테이블 행 정렬하기
테이블을 정리한 후에는 테이블을 다른 방법으로 구성할 수 있습니다.
예를 들어, 하나 이상의 변수 값을 기준으로 테이블의 행을 정렬할 수 있습니다.
첫 번째 변수 A의 값을 기준으로 행을 정렬합니다.
행을 C를 기준으로 내림차순으로 정렬한 후 A를 기준으로 오름차순으로 정렬합니다.
C를 기준으로 정렬하면 행을 먼저 "yes"로 그룹화하고 그다음 "no"로 그룹화합니다.
그런 다음 A를 기준으로 정렬하면 행이 사전순으로 나열됩니다.
A와 C가 서로 옆에 오도록 테이블을 재정렬하려면 movevars 함수를 사용합니다.
https://kr.mathworks.com/help/matlab/matlab_prog/clean-messy-and-missing-data-in-tables.html