在C#中读取Stata文件

时间:2012-06-11 00:31:06

标签: c# parsing stata

有没有人知道用于解析/读取.net中的Stata文件的开源库?这是一种表格数据格式。

如果没有人看到可以重复使用的内容,我打算写一个基于IDataReader的阅读器。

2 个答案:

答案 0 :(得分:2)

经过详尽的搜索后,我找不到用于阅读Stata文件的库。我最终为Stata版本5到12编写了一个IDataReader实现。我将看看是否可以将它发布到github。

其他人的注意事项:IDataReader没有获取Stata使用的类型化sbyte(int 8)的方法,因此如果在实现具有IDataReader接口的阅读器时需要该值,则可以通过GetInt16返回它

    // On the actual StataDataReader
    public sbyte GetSByte(int i) {}

    // This is the smallest int available on IDataReader
    // It will call GetSByte internally if that is the column type
    public short GetInt16(int i){}

我还添加了一个深入的GetMissingValue,因为Stata可以有许多缺失的值代码。 IsDBNull不支持任何上下文信息。

    public IMissingValue GetMissingValue(int i) {}

答案 1 :(得分:1)

我不知道C#库。但是,Stata的.dta格式为documented。您还可以查看R foreign package。在包的源代码中,您将找到一个名为“stataread.c”的文件,该文件可能与您的问题相关。