【问题标题】:Error in df_parse_dta_file(): Failed to parse C:/Users/folder/data.dta: This version of the file format is not supporteddf_parse_dta_file() 中的错误:解析 C:/Users/folder/data.dta 失败:不支持此版本的文件格式
【发布时间】:2021-06-01 22:10:28
【问题描述】:

我想读入 R 中的 .dta 文件,以便将其转换为 .csv 文件。首先,我尝试通过使用外部包这样做,但它报告:

read.dta(file) 中的错误:不是 Stata 版本 5-12 .dta 文件

所以我尝试通过使用 teh Have 包来做到这一点,但同样失败并报告:

df_parse_dta_file(spec, encoding, cols_skip, n_max, skip, name_repair = .name_repair) 中的错误:解析 C:/Users/folder/data.dta 失败:不支持此版本的文件格式

我也尝试使用 rio 包进行转换: install.packages("rio") 图书馆(里约) 安装格式() 转换("file.dta","file.csv")

但它报告了:

arg_reconcile(haven::read_dta, file = file, ..., .docall = TRUE, : 解析 C:/Users/folder/data.dta 失败:不支持此版本的文件格式。 此错误由:have::read_dta 生成 使用以下参数: “._costs.dta”

有谁知道如何在 R 中导入此类 .dta 文件以便转换 .csv 文件?

PS:.dta 文件的序言如下所示:

118LSFM 2019 年 4 月 23 日 16:22

【问题讨论】:

  • 是的,我试过了,但是没有用。我已编辑我的问题以包含出现的报告。
  • Stata .dta 文件总是以<stata_dta><header><release>118</release><byteorder>LSF</byteorder> 之类的前导码开头。告诉我们您看到类似的内容将确认它确实是一个 .dta 文件。告诉我们哪个版本产生了一个 .dta 文件,这将使问题更加准确。
  • 我已在我的问题中添加了序言。它是这样的:
    118LSFM2019 年 4 月 23 日 16:22
  • 好消息:这就是您的想法。坏消息:这种格式太新了,以至于您尝试过的 R 例程都不是最新的。那么,它来自哪里,提供者不能提供旧版本的 dta 文件(使用 saveold)或 .csv(使用 import delimited

标签: r parsing stata r-haven dta


【解决方案1】:

尝试在read_dta() 函数中添加encoding = "UTF-8"encoding = "Latin1",以告诉R 导入相同的数据而不编码为数字。清理数据可能需要一些时间:(

【讨论】:

    猜你喜欢
    • 2019-10-18
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2021-09-24
    相关资源
    最近更新 更多