使用 readstata13 包从 Stata 导入因子变量时出现问题
Problems when importing factor variables from Stata using readstata13 package
我有一个很奇怪的问题。我正在使用 readstata13
包将一些因子变量从 Stata 导入 R。导入的 labels/levels 看起来不错,但在删除因子 class 时它们会发生变化。这是变量的 Stata 描述(here 是再现性数据):
注意一些标签丢失了(更新:实际上,它们并没有丢失。相反,它们被填充了 space,这是编码员用来突出显示丢失标签的一种奇怪方式)。还要注意变量值 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))
知道如何解决这个问题吗?
似乎问题在于包 readstata13
在 R 中重新创建因子值,而没有保持 Stata 中因子值的顺序。
“解决方案”是不从 Stata 导入关卡。这可以使用 convert.factors = FALSE
选项来实现。虽然不是最佳解决方案,但它对我有用,因为我一开始就不需要因子水平。我在 package's website 中提出了一个问题以查看可能的解决方案。
我有一个很奇怪的问题。我正在使用 readstata13
包将一些因子变量从 Stata 导入 R。导入的 labels/levels 看起来不错,但在删除因子 class 时它们会发生变化。这是变量的 Stata 描述(here 是再现性数据):
注意一些标签丢失了(更新:实际上,它们并没有丢失。相反,它们被填充了 space,这是编码员用来突出显示丢失标签的一种奇怪方式)。还要注意变量值 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))
知道如何解决这个问题吗?
似乎问题在于包 readstata13
在 R 中重新创建因子值,而没有保持 Stata 中因子值的顺序。
“解决方案”是不从 Stata 导入关卡。这可以使用 convert.factors = FALSE
选项来实现。虽然不是最佳解决方案,但它对我有用,因为我一开始就不需要因子水平。我在 package's website 中提出了一个问题以查看可能的解决方案。