【问题标题】:Problems when importing factor variables from Stata using readstata13 package使用 readstata13 包从 Stata 导入因子变量时出现问题
【发布时间】:2022-01-24 15:31:50
【问题描述】:

我有一个非常奇怪的问题。我使用readstata13 包将一些因子变量从Stata 导入R。导入的标签/级别看起来不错,但在删除因子类时它们会发生变化。这是变量的Stata描述(here是可重复性的数据):

请注意缺少一些标签(更新:实际上,它们并没有丢失。而是用空格填充,这是编码器用来突出显示丢失标签的奇怪方式)。还要注意变量值 13 有 7 个观察值。

所以我在 R 中导入数据并检查级别和频率。没事:

然后我使用as.integer()(或as.numeric())删除关卡,但事情变得一团糟。特别是值 11、12 和 13。请注意,现在 11 有 7 个观察值,而不是 13:

关于与因素相关的read.dta13 选项,问题仍然存在。我尝试了this 答案中的第二个建议,使用以下代码,但没有奏效(很可能是因为只有两个值有标签):

labname <- get.label.name(data,"J_Itm1")
labtab <- get.label(data, labname)
table(get.origin.codes(data$J_Itm1, labtab))

知道如何解决这个问题吗?

【问题讨论】:

  • 如果你能添加一个数据样本就更好了,足以重新创建问题,直接在帖子中,例如dput。人们不一定信任第三方匿名下载网站
  • 一开始就不要把它们当作因素来读,玩convert.factors = TRUE, generate.factors = FALSE,选项,更彻底地阅读?readstata13::read.dta13的文档。
  • 我认为无论如何被选为受骗者至少会提供一个建议,说明为什么它可能是受骗者。对我来说,感觉就像不费吹灰之力。
  • @jay.sf convert.factors = FALSE 成功了。不太明白哪个是Stata因素的问题。当没有定义所有级别时,read.dta13 似乎对它们进行了不同的排序。
  • 我同意建议的重复目标似乎并未完全解决问题。我找不到更好的副本,所以我投票决定重新打开。如果你能自己回答这个问题,那就太好了。以供将来参考,you can @-notify 任何具有约束力投票结束您的问题的金徽章持有人。

标签: r readstata13


【解决方案1】:

问题似乎在于包readstata13 在 R 中重新创建因子值,而没有保持 Stata 中的顺序。

“解决方案”是不从 Stata 导入关卡。这可以使用convert.factors = FALSE 选项来实现。虽然不是最佳解决方案,但它对我有用,因为我首先不需要因子水平。我在package's website 中提出了一个问题,以查看潜在的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-10
    • 2018-04-19
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多