首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当将..dta文件从Stata读取到R时,如何处理14版本之前的编码?

当将..dta文件从Stata读取到R时,如何处理14版本之前的编码?
EN

Stack Overflow用户
提问于 2018-11-06 15:33:52
回答 1查看 2.1K关注 0票数 3

当将Stata-数据读入R时,如何避免编码问题?

我希望阅读的数据集是Stata 12或Stata 13中的.dta (在Stata在版本14中引入了对utf-8的支持之前)。文本-带有瑞典和德语字母、字符和其他字符的变量不能很好地导入。

我已经尝试过这些答案read.dta in foreignhaven包(没有编码参数),现在是read_stata13,它告诉我它是预期Stata文件将在CP1252中编码的。但是,唉,编码不起作用。我应该放弃使用..csv导出作为桥接器,还是实际上可以读取R中的..dta文件?

最小示例:

这段代码下载了我的数据集的前几行,并说明了这个问题,例如包含斯堪的纳维亚语言的变量vocation

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-07 08:52:03

在Macs上14版之前,读取Stata生成的文件的正确编码是"macroman"

代码语言:javascript
复制
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 )。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53175056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档