gpt4 book ai didi

r - 从版本 14 之前的 Stata 文件将 .dta 文件读入 R 时如何处理编码?

转载 作者:行者123 更新时间:2023-12-04 01:50:49 26 4
gpt4 key购买 nike

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

我希望读取的数据集是 Stata 12 或 Stata 13 中的 .dta(在 Stata 在版本 14 中引入对 utf-8 的支持之前)。包含瑞典语和德语字母 å、ä、ö、ß 以及其他字符的文本变量导入效果不佳。

我试过了these answersforeign 中的 read.dtahaven 包(没有编码参数),以及现在的 read_stata13,这告诉我它 expects Stata files to be encoded in CP1252 .但是,唉,编码不起作用。我应该放弃并改用 .csv-export 作为桥梁,还是实际上可以在 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

最佳答案

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

df <- read.dta13('example.stata13.dta', fromEncoding="macroman")

在我的 Mac 上,stata13 和 stata12 格式的 .dta 文件(在 Stata 13 中由 saveold 保存)像这样很好地导入。

据推测,read_stata13 的手册在其他平台上正确地假设了 "CP1252"。然而,对我来说,“macroman” 起到了作用,(也适用于 Stata 13 使用 export delimited 生成的 .csv 文件) .

关于r - 从版本 14 之前的 Stata 文件将 .dta 文件读入 R 时如何处理编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com