今天领导在网上的免费数据库下载了一个数据包,打开一开dta后缀名,查询后发现是stata软件处理的文件。然而手上只有R,最近在学习这个,所以搜索了下。有两种方法可以打开。
方法一:使用haven数据包
install.packages("haven")
library(haven)
data <- read_dta("C:/Users/Desktop/xxx.dta")
方法二:使用readstata13数据包
install.packages("readstata13")
library(readstata13)
mydata <- read.dta13("C:/Users/xxx.dta")
最后在保存成csv文件格式时候出现的了乱码。
save(data,file="C:/Users/Desktop/3.csv")

搜到网上的解决方法是用 write.csv,这是搜索方法二是给出的保存方式,想必这个函数依赖方法二的readstata13这个包。而且出现乱码可能是因为windows默认的文字格式ASN码,而R语言默认的编码方式是UTF-8。
代码如下:
write.csv(mydata,"C:/Users/Desktop/2.csv", fileEncoding = "GB18030")
结果打开后很完美

个人强烈建议用第二种方法。
本文介绍了如何在R语言中使用haven和readstata13包打开stata文件,并解决在保存为csv时出现的乱码问题。通过设置fileEncoding参数为'GB18030',成功避免了乱码,推荐使用readstata13包的方法。
1911

被折叠的 条评论
为什么被折叠?



