当将Stata-数据读入R时,如何避免编码问题?
我希望阅读的数据集是Stata 12或Stata 13中的.dta (在Stata在版本14中引入了对utf-8的支持之前)。文本-带有瑞典和德语字母、字符和其他字符的变量不能很好地导入。
我已经尝试过这些答案,read.dta in foreign,haven包(没有编码参数),现在是read_stata13,它告诉我它是预期Stata文件将在CP1252中编码的。但是,唉,编码不起作用。我应该放弃使用..csv导出作为桥接器,还是实际上可以读取R中的..dta文件?
最小示例:
这段代码下载了我的数据集的前几行,并说明了这个问题,例如包含斯堪的纳维亚语言的变量vocation。
setwd("~/Downloads/")
system("curl -O http://www.lilljegren.com/stackoverflow/example.stata13.dta", intern=F)
library(foreign)
?read_dta
df1 <- read_dta('example.stata13.dta', encoding="latin1")
df2 <- read_dta('example.stata13.dta', encoding="CP1252")
library(readstata13)
df3 <- read.dta13('example.stata13.dta', fromEncoding="latin1")
df4 <- read.dta13('example.stata13.dta', fromEncoding="CP1252")
df5 <- read.dta13('example.stata13.dta', fromEncoding="utf-8")
vocation <- c("Brandkorpral","Sömmerska","Jungfru","Timmerman","Skomakare","Skräddare","Föreståndare","Platsförsäljare","Sömmerska")
df4$vocation == vocation
# [1] TRUE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE发布于 2018-11-07 08:52:03
在Macs上14版之前,读取Stata生成的文件的正确编码是"macroman"。
df <- read.dta13('example.stata13.dta', fromEncoding="macroman")在我的Mac上,stata13格式的..dta文件和stata12格式的..dta文件(由saveold在Stata 13中保存)都像这样很好地导入。
据推测,read_stata13的手册正确地假定了其他平台上的"CP1252"。然而,对我来说,"macroman"做到了这一点(也适用于Stata 13用export delimited生成的.csv-files )。
https://stackoverflow.com/questions/53175056
复制相似问题