【发布时间】: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