이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
텍스트 파일에서 혼합된 데이터를 테이블로 가져오기
이 예제에서는 readtable
함수를 사용하여 텍스트 데이터와 숫자형 데이터가 혼합된 데이터를 테이블로 가져오고, 변수의 데이터형을 지정한 다음, 테이블에 새 변수를 추가하는 방법을 보여줍니다.
샘플 파일 개요
샘플 파일 outages.csv
에는 미국 내의 정전 기록을 나타내는 데이터가 들어 있습니다. 이 파일의 처음 몇 라인은 다음과 같습니다.
Region,OutageTime,Loss,Customers,RestorationTime,Cause
SouthWest,2002-01-20 11:49,672,2902379,2002-01-24 21:58,winter storm
SouthEast,2002-01-30 01:18,796,336436,2002-02-04 11:20,winter storm
SouthEast,2004-02-03 21:17,264.9,107083,2004-02-20 03:37,winter storm
West,2002-06-19 13:39,391.4,378990,2002-06-19 14:27,equipment fault
텍스트 파일 읽기
readtable
을 사용하여 데이터를 가져온 후 처음 5개 행을 표시합니다. readtable
함수는 구분 기호와 변수 유형을 자동으로 감지합니다.
T = readtable('outages.csv');
head(T,5)
ans=5×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' }
{'West' } 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 {'equipment fault'}
{'MidWest' } 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 {'severe storm' }
가져오기 전에 변수 데이터형 지정하기
파일의 변수 유형에 따라 변수 데이터형을 적절한 MATLAB 데이터형으로 업데이트하면 데이터를 처리하는 데 도움이 될 수 있습니다. 예를 들어, outages.csv
의 첫 번째 열과 여섯 번째 열은 categorical형입니다. 이 두 열을 categorical
형 배열로 지정하면, categorical형 데이터를 처리하는 MATLAB 함수를 활용할 수 있습니다.
다음 방법 중 하나를 사용하여 변수의 데이터형을 지정합니다.
readtable
에Format
이름-값 쌍 지정파일에 대한 가져오기 옵션의
VariableTypes
속성 설정
Format
이름-값 쌍을 사용하여 변수 데이터형을 지정하고 데이터를 읽어온 다음 처음 5개 행을 표시합니다. formatSpec
지정자의 %{yyyy-MM-dd HH:mm}D
부분에서 중괄호 사이에 있는 텍스트는 날짜/시간 데이터의 형식을 설명합니다. Format
에 지정된 값은 다음을 지정합니다.
파일의 첫 번째 열과 마지막 열을 categorical형 데이터로
두 번째 열과 다섯 번째 열을 형식이 지정된 날짜/시간 데이터로
세 번째 열과 네 번째 열을 부동소수점 값으로
formatSpec = '%C%{yyyy-MM-dd HH:mm}D%f%f%{yyyy-MM-dd HH:mm}D%C'; T = readtable('outages.csv','Format',formatSpec); head(T,5)
ans=5×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
West 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 equipment fault
MidWest 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 severe storm
또는, 가져오기 옵션의 setvartype
함수를 사용하여 변수의 데이터형을 지정합니다. 먼저 파일에 대한 import options 객체를 생성합니다. 데이터 파일에는 여러 유형의 변수가 포함되어 있습니다. 첫 번째 변수와 마지막 변수를 categorical
형 배열로 지정하고, 두 번째 변수와 다섯 번째 변수를 datetime
형 배열로 지정하고, 나머지 변수는 double
형으로 지정합니다.
opts = detectImportOptions('outages.csv'); varNames = opts.VariableNames ; varTypes = {'categorical','datetime','double',... 'double','datetime','categorical'}; opts = setvartype(opts,varNames,varTypes);
readtable
을 opts
와 함께 사용하여 데이터를 가져온 다음 처음 5개 행을 표시합니다.
T = readtable('outages.csv',opts);
head(T,5)
ans=5×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
West 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 equipment fault
MidWest 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 severe storm
테이블에 새 변수 추가하기
테이블 T
에는 OutageTime
과 RestorationTime
이 포함되어 있습니다. 각 정전의 지속 시간을 계산하고 이 데이터를 테이블에 추가합니다.
T.Duration = T.RestorationTime - T.OutageTime; head(T,5)
ans=5×7 table
Region OutageTime Loss Customers RestorationTime Cause Duration
_________ ________________ ______ __________ ________________ _______________ _________
SouthWest 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 winter storm 148:32:00
SouthEast 2003-01-23 00:49 530.14 2.1204e+05 NaT winter storm NaN
SouthEast 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 winter storm 226:59:00
West 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 equipment fault 00:26:00
MidWest 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 severe storm 65:05:00
참고 항목
readtimetable
| readtable
| detectImportOptions
| setvaropts
| setvartype
| preview
| head