Загрузка всех данных после определенного c наблюдения - PullRequest
0 голосов
/ 21 января 2020

Используя этот отличный совет от Statalist, я запускаю al oop, чтобы прочитать набор данных 60GB Stata и сохранить его порциями (после некоторой предварительной обработки данных).

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

use `usevars' in 210000001/220000000 using "a_large_dta_file.dta", clear

Появляется набор данных содержать менее 220000000 наблюдений, но я не знаю, сколько. Я ищу оператора endoffile или что-то в этом духе, чтобы обойти эту проблему. Вручную я проверил, что существует хотя бы 210001001, но это не сильно поможет.

1 Ответ

1 голос
/ 21 января 2020

Рассмотрим следующий воспроизводимый пример с использованием auto игрушечного набора данных Stata:

sysuse auto, clear
display _N
74

Использование команды describe даст вам то, что вы хотите:

findfile auto.dta

describe using "`r(fn)'" // or ask for only one variable e.g. describe rep78

display r(N)
74

Наборы данных Stata всегда прямоугольник angular, так что вы также можете вручную загрузить одну переменную и считать:

use rep78 using "`r(fn)'", clear // load a variable which also contains missing data

display _N
74

В качестве альтернативы, используйте al oop, чтобы загрузить меньшие чанки, и команду capture, чтобы увидеть, где она не работает.

...