exponenta event banner

Чтение и анализ большого табличного текстового файла

В этом примере показано, как создать хранилище данных для большого текстового файла, содержащего табличные данные, а затем считывать и обрабатывать данные по одному блоку или по одному файлу за один раз.

Создание хранилища данных

Создание хранилища данных из файла образца airlinesmall.csv с использованием tabularTextDatastore функция. При создании хранилища данных можно указать, что текст, NA, в данных рассматривается как отсутствующие данные.

ds = tabularTextDatastore('airlinesmall.csv','TreatAsMissing','NA');

Можно изменить свойства хранилища данных, изменив его свойства. Изменение MissingValue , чтобы указать, что отсутствующие значения обрабатываются как 0.

ds.MissingValue = 0;

В этом примере выберите переменную для задержки поступления. ArrDelay, как переменная интереса.

ds.SelectedVariableNames = 'ArrDelay';

Предварительный просмотр данных с помощью preview функция. Эта функция не влияет на состояние хранилища данных.

data = preview(ds)
data=8×1 table
    ArrDelay
    ________

        8   
        8   
       21   
       13   
        4   
       59   
        3   
       11   

Считывание подмножеств данных

По умолчанию read считывает из TabularTextDatastore 20000 строк одновременно. Считывание различного количества строк в каждом вызове read, измените ReadSize имущество ds.

ds.ReadSize = 15000;

Считывание подмножеств данных из ds с использованием read функция в while цикл. Цикл выполняется до hasdata(ds) прибыль false.

sums = [];
counts = [];
while hasdata(ds)
    T = read(ds);
    
    sums(end+1) = sum(T.ArrDelay);
    counts(end+1) = length(T.ArrDelay);
end

Вычислить среднюю задержку поступления

avgArrivalDelay = sum(sums)/sum(counts)
avgArrivalDelay = 6.9670

Сбросьте хранилище данных, чтобы разрешить повторное чтение данных.

reset(ds)

Чтение одного файла за один раз

Хранилище данных может содержать несколько файлов, каждый из которых имеет разное количество строк. Вы можете прочитать из хранилища данных один полный файл за один раз, установив ReadSize свойство для 'file'.

ds.ReadSize = 'file';

При изменении значения ReadSize из числа в 'file' или наоборот, MATLAB сбрасывает хранилище данных.

Читать из ds с использованием read функция в while закольцовывают, как и раньше, и вычисляют среднюю задержку поступления.

sums = [];
counts = [];
while hasdata(ds)
    T = read(ds);
    
    sums(end+1) = sum(T.ArrDelay);
    counts(end+1) = length(T.ArrDelay);
end
avgArrivalDelay = sum(sums)/sum(counts)
avgArrivalDelay = 6.9670

См. также

| |

Связанные темы