读取R中的Stata 13文件

读取R中的Stata 13文件,r,stata,R,Stata,有没有办法读取R中的Stata版本13数据集文件 我已尝试做以下工作: > library(foreign) > data = read.dta("TEAdataSTATA.dta") 但是,我得到了一个错误: read.dta(“teadastata.dta”)中出错: 不是Stata版本5-12.dta文件 有人能指出是否有办法解决这个问题吗?如果您有Stata 13,那么您可以使用命令saveold(请参阅帮助saveold)将其加载到那里并保存为Stata 12格式。然后

有没有办法读取R中的Stata版本13数据集文件

我已尝试做以下工作:

> library(foreign)
> data = read.dta("TEAdataSTATA.dta") 
但是,我得到了一个错误:

read.dta(“teadastata.dta”)中出错:
不是Stata版本5-12.dta文件


有人能指出是否有办法解决这个问题吗?

如果您有Stata 13,那么您可以使用命令
saveold
(请参阅
帮助saveold
)将其加载到那里并保存为Stata 12格式。然后,把它带到R

如果您有,Stata 10-12,您可以使用用户编写的命令
use13
(由Sergiy Radyakin编写)加载并保存它;然后转到R。您可以安装
use13
运行
ssc安装use13

详情请浏览

其他替代方案(仍然使用Stata)涉及将Stata格式导出到R将读取的其他内容,例如基于文本的文件。请参阅Stata中的帮助导出

更新
从Stata 14开始,
saveold
有一个
version()
选项,允许以与Stata 11一样旧的Stata.dta格式保存。

有一个新的包可以将Stata 13文件导入R中的data.frame中

安装软件包并使用read.dta13()读取Stata 13数据集:

install.packages(“readstata13”)
图书馆(readstata13)

dat同时savespss命令成为SSC存档的成员,可以通过以下方式安装到Stata:
findit savespss


主页继续工作,但该程序现在应该从SSC安装,而不是从测试版位置安装。

有一个名为Haven的新软件包,由Hadley Wickham编写,它可以加载Stata 13 dta文件(以及SAS和SPSS文件)

library(haven)#haven软件包现已在cran上提供

df我也有同样的问题。尝试了
read.dta13
read.dta
,但没有任何效果。然后尝试了最简单也是最意想不到的:MS Excel!它开得好极了。我将其保存为
.csv
并在R中使用!!!希望这有帮助

我不熟悉R项目的能力现状 要读取其他文件格式,但如果某人的计算机上没有安装Stata,并且R无法读取特定版本的Stata的
dta
文件,则Python中的
Pandas
现在可以执行绝大多数此类转换

基本上,首先使用函数加载
dta
文件中的数据。从版本
0.23.0
开始,可在中找到支持的编码和格式

然后可以将数据保存为
csv
文件并导入它们
使用标准R函数,或者使用函数,该函数使用基于Apache Arrow构建的序列化格式导出数据。后者在R中有广泛的支持,正如它在
Pandas
中所设想的那样

不在
外部
包中
?read.dta
:“冻结:12点后将不支持Stata格式”。@BenBolker谢谢Ben,有什么东西可以为Stata 13文件这样做吗(顺便问一下,我想你父亲是Ben Bolker,他很久以前教过我数学:),如果这很奇怪,很抱歉)你是指Ethan Bolker,对吗?不知道,对不起,可能有人会坐下来对格式进行反向工程。现在转移到SPSS的评论也很难。好的,非常感谢。但很抱歉,我仍然有一个问题,当我尝试写入以将数据转换为spss文件时,我键入:假设我已将数据从STATA文件导入名为
data1
的数据框,然后我使用
write.table(data,'mydata.txt',sep=“\t”)将数据框写入文本文件
然后为了获取SPSS文件,我做了:
write.foreign(b,“mydata.txt”,“DerLeew.sps”,package=“SPSS”)
但是我得到了错误:
writeForeignSPSS中的错误(df=list(studyid=c(“P0008”,“P0018”,“P0031”),:我不能将变量名缩写为8个或更少的字母,谢谢。我说不出原因。我对R的了解比较有限。我确实想知道这些转换是怎么回事:从Stata到R再到txt再到SPSS。如果你想将Stata转换为SPSS,请再次尝试Sergiy Radyakin使用Stata命令
保存SPSS
。阅读下面的内容g开始:。我不是必须使用Stat/Transfer直接在STATA中执行吗?一点也不。Sergiy在数据传输问题上做了很大的努力。你所需要做的就是从http://radyakin.org/transfer/savespss/beta
并阅读我上一篇评论中的网页以了解(非常简单)语法。(顺便说一句,拼写是Stata,不是Stata。它不是首字母缩略词。)我在loadNamespace(name)中遇到了
错误:在尝试执行
devtools::install_github(“sjewo/readstata13”,ref=“0.2”)时,没有名为“httr”的包
line.Hi Dan!您的devtools可能已过期,并且httr软件包丢失。请尝试更新您的软件包
install.packages(“devtools”,dependencies=T)
并检查是否可以使用
库(devtools)
加载devtools。也许您还可以使用
库(httr)检查httr
。您的程序包如何处理数据集中的任何
strL
变量?strL变量继承一个引用字符串,该字符串引用由
attr(NameOfDataset,“strL”)获取的列表中的字符串
。在0.4版中,可以设置选项
replace.strl=TRUE
,将data.frame中对
strl
字符串的引用替换为实际值。仅举一个例子,就格式化而言,
haven
似乎不如
readstata13
准确,将许多数字变量标记为字符变量因此,对于那些使用<代码> Have<代码> >的用户来说,这可能是一个值得考虑的问题,因为<代码> Have<代码>也是最合适的,我发现,为了从SAS导入其他专有格式,如“代码> .SAS7BDAT</代码>,请参阅,而代码> RealStAd13显然是一个单一用途的包装。
install.packages("readstata13")

library(readstata13)
dat <- read.dta13("TEAdataSTATA.dta")
library(haven) # haven package now available on cran
df <- read_dta('c:/somefile.dta')