在特定观察后加载所有数据

Load all data after a specific observation

利用 Statalist 的 this 优秀建议,我 运行 循环读取 60GB Stata 数据集并将其保存为块(在一些数据预处理之后)。

不幸的是,我不知道观察的总数,因此当要求读取比可用数据更多的数据时,use 命令不会执行:

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

数据集似乎包含少于 220000000 个观测值,但我不知道有多少。我正在寻找 endoffile 运算符或本着这种精神的东西来规避这个问题。我手动验证至少 210001001 存在,但这不会有太大帮助。

考虑以下使用 Stata 的 auto 玩具数据集的可重现示例:

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 数据集始终是矩形的,因此您也可以手动加载单个变量并计数:

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

display _N
74

或者,使用循环加载更小的块,然后使用 capture 命令查看失败的地方。