0

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

这是一张图片

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

所以我在 R 中导入数据并检查级别和频率。一切都好:

图片在这里

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

图片在这里

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

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

知道如何解决问题吗?

4

1 回答 1

0

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

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

于 2022-01-07T10:41:33.943 回答