在特定观察后加载所有数据
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
命令查看失败的地方。
利用 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
命令查看失败的地方。