텍스트 파일의 데이터를 테이블로 가져오기
텍스트 파일에 테이블 형식 데이터가 있으면 readtable
함수를 사용하여 데이터를 테이블로 가져올 수 있습니다. 테이블은 각각 동일한 유형의 데이터를 포함하는 열 방향 변수로 구성됩니다. 테이블에 포함된 변수는 데이터형과 크기가 서로 다를 수 있습니다. 그러나 각 변수는 모두 행 개수가 동일해야 합니다.
readtable
은 입력 파일의 요소를 감지하여 입력 파일의 내용을 어떤 방식으로 가져오는 것이 가장 적합할지 결정합니다. readtable
은 비어 있지 않은 처음 250줄의 데이터의 구분 기호, 제목 라인 수, 변수 개수, 변수 유형 및 메타데이터를 기반으로 데이터의 형식을 분석합니다. 이름-값 인수 또는 import options 객체를 사용하여 가져오기의 여러 특성을 사용자 지정할 수 있습니다.
텍스트 파일을 테이블로 읽어 들이기
readtable
함수를 사용하여 텍스트 파일에서 테이블 형식 데이터를 테이블로 가져올 수 있습니다. 예를 들어, 샘플 파일 outages.csv
에는 쉼표로 구분된 열 방향 데이터가 포함되어 있습니다.
outages.csv
에서 테이블을 만듭니다. 생성되는 테이블은 파일의 각 열별로 변수를 하나씩 포함하고, readtable
은 파일의 첫 번째 라인에 있는 항목을 변수 이름으로 처리합니다. 인덱싱을 사용하여 테이블의 처음 3개 행과 처음 5개 열을 표시합니다.
T = readtable("outages.csv");
T(1:3,1:6)
ans=3×6 table
Region OutageTime Loss Customers RestorationTime Cause
_____________ ________________ ______ __________ ________________ ________________
{'SouthWest'} 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 {'winter storm'}
{'SouthEast'} 2003-01-23 00:49 530.14 2.1204e+05 NaT {'winter storm'}
{'SouthEast'} 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 {'winter storm'}
구분 기호 지정하기
기본적으로 readtable
은 파일 구분 기호를 감지하고 이를 사용하여 데이터를 테이블 요소로 분할합니다. readtable
은 데이터의 비어 있지 않은 처음 250줄의 열로부터 변수의 개수와 데이터형의 일관성을 파악하여 구분 기호를 결정합니다. 예를 들어, airlinesmall.csv
에는 쉼표로 구분된 데이터가 들어 있으므로 readtable
은 구분 기호가 ",
"임을 감지하고 이에 따라 데이터를 분할합니다.
T = readtable("airlinesmall.csv");
readtable
이 사용자가 의도한 구분 기호를 선택하지 않을 경우, Delimiter
이름-값 인수를 사용하여 구분 기호를 지정할 수 있습니다.
T = readtable("airlinesmall.csv",Delimiter=",");
열 제목이 있는 데이터 읽기
기본적으로 readtable
은 파일에 변수 이름으로 사용할 제목 행이 있는지 확인합니다. 예를 들어, headersAndMissing.txt
파일의 처음 2개 행에는 변수 이름과 제목이 들어 있습니다. readtable
은 변수 이름에 해당하는 첫 번째 행은 유지하고 제목에 해당하는 두 번째 행은 무시합니다.
T = readtable("headersAndMissing.txt");
NumHeaderLines
이름-값 인수를 사용하여 파일 시작 부분에서 건너뛸 제목 라인 수를 지정할 수 있습니다. 예를 들어, 첫 번째 행을 제목 라인으로 지정하여 이 라인을 건너뛰고 데이터를 읽도록 합니다.
T = readtable("headersAndMissing.txt",NumHeaderLines=1)
T=5×6 table
string string_1 int int_1 int_2 boolean
___________ __________ ___ _____ _____ _______
{'Wu' } {'M' } 38 71 176 1
{'Johnson'} {'M' } 43 69 163 0
{'Sanchez'} {'F' } 38 64 131 0
{'Brown' } {'F' } NaN 67 133 0
{'Picard' } {0x0 char} NaN 64 119 0
열 제목이 없는 데이터 읽기
파일에 열 제목이 없는 경우 readtable
은 Var1
, Var2
, ..., VarN
형식으로 디폴트 변수 이름을 할당합니다. 예를 들어, mySpaceDelimTable.txt
는 첫 번째 행에 열 이름이 없으므로 readtable
은 디폴트 변수 이름 Var1
~ Var5
를 할당합니다. 테이블의 처음 3개 행을 표시합니다.
T = readtable("mySpaceDelimTable.txt");
head(T,3)
Var1 Var2 Var3 Var4 Var5 _____ ____ ____ ______ _________ {'M'} 45 45 {'NY'} {'true' } {'F'} 41 32 {'CA'} {'false'} {'M'} 40 34 {'MA'} {'false'}
파일에 열 제목이 있지만 이 열을 읽어오지 않으려면 ReadVariableNames
이름-값 인수를 false
로 지정하십시오.
T = readtable("headersAndMissing.txt",ReadVariableNames=false);
누락된 데이터 채우기
파일에 누락된 데이터가 있는 경우 readtable
은 적절한 missing
값을 사용하여 빈 데이터 자리를 채웁니다. 빈 자리에 공백 문자만 들어 있거나 행이 끝날 때까지 변수를 찾지 못하면 이러한 빈 자리는 누락된 데이터로 간주됩니다. 예를 들어, 파일 headersAndMissing.txt
에서 마지막 2개 행은 데이터가 누락되어 있고 그 앞의 행들에는 데이터 값이 있습니다. 기본적으로 readtable
은 이러한 빈 자리를 NaN
등의 적절한 누락값으로 채웁니다.
T = readtable("headersAndMissing.txt");
readtable
이 누락된 데이터를 처리하는 방법을 조정하려면 MissingRule
이름-값 인수를 사용하십시오. 예를 들어, 누락된 데이터가 있는 행을 생략하려면 MissingRule
을 "omitrow"
로 지정합니다.
T = readtable("headersAndMissing.txt",MissingRule="omitrow");
날짜 로캘 변환하기
파일에 시스템의 날짜 로캘과 다른 로캘의 날짜 값이 포함되어 있는 경우 readtable
은 사용자가 원하는 날짜 로캘을 사용하여 데이터 값을 변환하고 가져올 수 있습니다. 예를 들어, 지정된 문자 인코딩 체계를 사용하여 outages.csv
로부터 파일을 읽고 날짜 값을 미국 영어(United States English) 로캘로 해석하여 테이블을 만들어 보겠습니다. Encoding
이름-값 인수를 사용하여 파일의 문자 인코딩 체계를 지정합니다. DateLocale
이름-값 인수를 사용하여 입력 날짜의 형식과 로캘을 지정합니다. 테이블의 처음 3개 행을 표시합니다.
T = readtable("outages.csv", ... Encoding="ISO-8859-15", ... DateLocale="en_US"); head(T,3)
Region OutageTime Loss Customers RestorationTime Cause _____________ ________________ ______ __________ ________________ ________________ {'SouthWest'} 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 {'winter storm'} {'SouthEast'} 2003-01-23 00:49 530.14 2.1204e+05 NaT {'winter storm'} {'SouthEast'} 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 {'winter storm'}
16진수 숫자와 2진수 숫자 읽기
파일에 16진수 또는 2진수 리터럴이 들어 있는 경우 readtable
은 이를 숫자형 변수로 읽어들여서 테이블에 저장할 수 있습니다. readtable
함수는 숫자가 각각 0x
접두사와 0b
접두사를 포함할 경우 이들 숫자를 자동으로 16진수 숫자와 2진수 숫자로 읽어들입니다. 숫자형 값은 정수 데이터형을 사용하여 저장됩니다. 접두사가 없는 16진수 숫자와 2진수 숫자는 import options를 사용하여 읽어올 수도 있습니다.
예를 들어, hexAndBinary.txt
파일에서 테이블을 만들어 보겠습니다. readtable
은 0x
접두사와 0b
접두사를 포함하는 숫자를 감지하고 이를 정수로 저장합니다.
T = readtable("hexAndBinary.txt");
기본적으로 readtable
은 16진수 리터럴과 2진수 리터럴을 가져올 때 가능한 가장 작은 부호 없는 정수 클래스를 사용합니다.
16진수 숫자와 2진수 숫자에서 가져온 숫자형 값을 저장할 데이터형을 지정하려면 HexType
및 BinaryType
이름-값 인수를 사용하십시오. 예를 들어, 값을 부호 있는 32비트 정수로 저장합니다.
T = readtable("hexAndBinary.txt",HexType="int32",BinaryType="int32");
가져오기 옵션을 사용하여 가져오기를 구성하기
가져오기를 추가로 구성하려면 import options 객체를 사용하여 readtable
이 파일을 해석하는 방식을 제어할 수 있습니다. 이름-값 인수에 비해, import options 객체는 파일 가져오기 구성을 더 세부적으로 제어할 수 있고 더 향상된 성능과 재사용 가능성을 제공합니다.
import options 객체에는 입력 파일에 대해 감지된 정보를 저장하는 속성이 포함되어 있습니다. 특정 변수를 지정하거나, 점 표기법을 사용하여 모든 변수를 지정할 수 있습니다. 예를 들어, outages.csv
로부터 import options 객체를 생성합니다. import options 객체의 VariableNames
속성을 표시합니다. 여기에는 감지된 변수 이름이 저장되어 있습니다.
opts = detectImportOptions("outages.csv");
opts.VariableNames
ans = 1x6 cell
{'Region'} {'OutageTime'} {'Loss'} {'Customers'} {'RestorationTime'} {'Cause'}
특정 변수의 데이터형을 변경하려면 setvartype
함수를 사용합니다. 예를 들어, Region
변수의 데이터형을 string
으로 변경합니다.
opts = setvartype(opts,"Region","string");
특정 변수의 옵션을 설정하려면 setvaropts
함수를 사용합니다. 예를 들어, RestorationTime
변수에 비어 있는 필드가 있는 경우 오류를 생성합니다.
opts = setvaropts(opts,"RestorationTime",EmptyFieldRule="error");
가져올 변수의 서브셋을 지정하려면 SelectedVariableNames
속성을 사용합니다. 예를 들어, Region
및 RestorationTime
데이터만 가져옵니다.
opts.SelectedVariableNames = ["Region","RestorationTime"];
import options 객체의 구성을 마쳤으면 readtable
과 함께 이 객체를 사용하여 파일을 가져옵니다.
T = readtable("outages.csv",opts);
head(T,3)
Region RestorationTime ___________ ________________ "SouthWest" 2002-02-07 16:50 "SouthEast" NaT "SouthEast" 2003-02-17 08:14
import options 객체를 사용하는 방법에 대한 자세한 내용은 detectImportOptions
항목을 참조하십시오.
참고 항목
readtimetable
| readtable
| detectImportOptions
| setvaropts
| setvartype
| preview
| head