Main Content

텍스트 파일의 데이터를 테이블로 가져오기

텍스트 파일에 테이블 형식 데이터가 있으면 readtable 함수를 사용하여 데이터를 테이블로 가져올 수 있습니다. 테이블은 각각 동일한 유형의 데이터를 포함하는 열 방향 변수로 구성됩니다. 테이블에 포함된 변수는 데이터형과 크기가 서로 다를 수 있습니다. 그러나 각 변수는 모두 행 개수가 동일해야 합니다.

readtable은 입력 파일의 요소를 감지하여 입력 파일의 내용을 어떤 방식으로 가져오는 것이 가장 적합할지 결정합니다. readtable은 비어 있지 않은 처음 250줄의 데이터의 구분 기호, 제목 라인 수, 변수 개수, 변수 유형 및 메타데이터를 기반으로 데이터의 형식을 분석합니다. 이름-값 인수 또는 import options 객체를 사용하여 가져오기의 여러 특성을 사용자 지정할 수 있습니다.

텍스트 파일을 테이블로 읽어 들이기

readtable 함수를 사용하여 텍스트 파일에서 테이블 형식 데이터를 테이블로 가져올 수 있습니다. 예를 들어, 샘플 파일 outages.csv에는 쉼표로 구분된 열 방향 데이터가 포함되어 있습니다.

outages_screenshot.png

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   

열 제목이 없는 데이터 읽기

파일에 열 제목이 없는 경우 readtableVar1, 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 파일에서 테이블을 만들어 보겠습니다. readtable0x 접두사와 0b 접두사를 포함하는 숫자를 감지하고 이를 정수로 저장합니다.

T = readtable("hexAndBinary.txt");

기본적으로 readtable은 16진수 리터럴과 2진수 리터럴을 가져올 때 가능한 가장 작은 부호 없는 정수 클래스를 사용합니다.

16진수 숫자와 2진수 숫자에서 가져온 숫자형 값을 저장할 데이터형을 지정하려면 HexTypeBinaryType 이름-값 인수를 사용하십시오. 예를 들어, 값을 부호 있는 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 속성을 사용합니다. 예를 들어, RegionRestorationTime 데이터만 가져옵니다.

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 항목을 참조하십시오.

참고 항목

| | | | | |

관련 항목