【问题标题】:Am I the only one experiencing problems with R's haven package?我是唯一一个遇到 R 的避风港包问题的人吗?
【发布时间】:2021-07-21 02:52:06
【问题描述】:

我想通过haven::read_dta() 在 R 中打开一个 stata 文件。几周前我创建了我的脚本,直到现在一切都运行良好:突然,当我尝试加载数据时,我的会话崩溃(“R 会话中止”)。我的一位同事遇到了同样的问题。

我尝试了很多方法:通过setwd() 选择正确的工作目录,通过choose.files() 选择文件,使用“/”、“//”和“\”输入文件路径,但似乎没有任何效果。

到目前为止,他们的工作方式是:

install.packages("haven")
library(haven)

my_data <- read_dta("my_path_structure\\file_name.dta")

有人遇到同样的问题吗?

编辑:问题应该很快得到解决。如需更多信息,请参阅here

【问题讨论】:

    标签: r stata r-haven


    【解决方案1】:

    问题

    14 日,Haven 更新为2.4.0,他们在内部升级为ReadStat 1.1.5.,处理.dta 文件的导入。 ReadStat 1.1.5 中似乎没有任何代码破解更新..

    我能够在 R Studio 中重现您的中止错误,但没有提供任何信息。我直接去了 R 控制台,运行相同的代码后它给了我以下分段错误:

    *** caught segfault ***
    address 0x0, cause 'invalid permissions'
    

    鉴于这不是以前版本的 Haven 的问题,我会向开发人员报告错误。

    临时解决方案

    我可以通过使用readstata13 包来解决这个问题。这是一个例子,

    install.packages("readstata13")
    library(readstata13)
    my_data <- read.dta13("my_path_structure/file_name.dta")
    

    【讨论】:

    • 正斜杠 / 应该在任何操作系统上用作 R 中的路径分隔符...(`\` 适用于 Windows)
    • 谢谢@BenBolker,我已经继续编辑我的答案了。
    • 谢谢@JesseKaczmarski。请问您是如何从控制台生成此反馈的?因为如果我直接在那里输入代码,窗口会立即关闭。
    • 是的!对不起,我没有更具体。我没有在 R Studio IDE 中使用 R 控制台,而是使用了在您首次安装 R 时安装的 R 控制台。希望对您有所帮助!
    • @Jesse Kaczmarski 这很有趣,因为我也使用过那个控制台,但我没有收到任何有意义的反馈。嗯,反正我已经报过bug了。
    【解决方案2】:

    我遇到了同样的问题。我的解决方案是安装 Haven 2.3.1。

    packageUrl <- "https://cran.r-project.org/src/contrib/Archive/haven/haven_2.3.1.tar.gz"
    
    # only needed if haven is attached
    detach("package:haven", unload = TRUE)
    
    install.packages(packageUrl, repos=NULL, type="source")
    

    【讨论】:

    • 没错,这是绕过问题的一种可能性。但我想这不应该是“最终解决方案”。
    【解决方案3】:

    截至 2021 年 7 月 27 日,此问题已在 Haven 的开发版本中得到修复。运行devtools::install_github("tidyverse/haven")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多