仅读入R中的Stata.DTA文件的一部分 [英] Reading in only part of a Stata .DTA file in R

查看:10
本文介绍了仅读入R中的Stata.DTA文件的一部分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果这里有一个简单的答案,我提前道歉。这看起来像是那种事情,但我似乎无法在帮助文件中找到它,无论是通过搜索还是通过谷歌搜索。

我现在正在使用一些几GB的数据集。在我有权访问的一个集群节点上,它足以放入内存中,但需要相当长的时间才能加载。对于许多使用此数据的调试/编程活动,我不需要加载整个文件,只需要加载前几千个观测数据即可获得用于测试代码的数据集。当然,我可以只读入整个文件及其子集,但我想知道是否有办法告诉read.dta()只读入前N行?这当然会快得多。

我也可以使用适当的格式(如.csv),然后使用read.csv()的nrow参数,但这样我就会丢失Stata数据集中的因子标签(并且必须从其他人的代码重新创建相当多GB的数据,这些数据正在输入到该项目中。因此,在.dta文件上直接解决方案是首选的。

推荐答案

STATA的二进制文件是逐行写入的,因此您可以更改stataread.c中的R_LoadStataData函数以限制读取的行数。但是,这仅在您不需要值标签时才起作用,因为它们是在文件末尾写入的,并且需要您读取整个文件--这不会节省任何时间。

这篇关于仅读入R中的Stata.DTA文件的一部分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆