Read Stata 13 file in R

RStata

R Problem Overview


Is there a way to read a Stata version 13 dataset file in R?

I have tried to do the following:

> library(foreign)
> data = read.dta("TEAdataSTATA.dta") 

However, I got an error:

>Error in read.dta("TEAdataSTATA.dta") :
>not a Stata version 5-12 .dta file

Could someone point out if there is a way to fix this?

R Solutions


Solution 1 - R

There is a new package to import Stata 13 files into a data.frame in R.

Install the package and read a Stata 13 dataset with read.dta13():

install.packages("readstata13")

library(readstata13)
dat <- read.dta13("TEAdataSTATA.dta")

Update: readstata13 imports in version 0.8 also files from Stata 6 to 14

More about the package: https://github.com/sjewo/readstata13

Solution 2 - R

There's a new package called Haven, by Hadley Wickham, which can load Stata 13 dta files (as well as SAS and SPSS files)

library(haven) # haven package now available on cran
df <- read_dta('c:/somefile.dta')

See: https://github.com/hadley/haven

Solution 3 - R

If you have Stata 13, then you can load it there and save it as a Stata 12 format using the command saveold (see help saveold). Afterwards, take it to R.

If you have, Stata 10 - 12, you can use the user-written command use13, (by Sergiy Radyakin) to load it and save it there; then to R. You can install use13 running ssc install use13.

Details can be found at http://radyakin.org/transfer/use13/use13.htm

Other alternatives, still with Stata, involve exporting the Stata format to something else that R will read, e.g. text-based files. See help export within Stata.

Update

Starting Stata 14, saveold has a version() option, allowing one to save in Stata .dta formats as old as Stata 11.

Solution 4 - R

In the meanwhile savespss command became a member of the SSC archive and can be installed to Stata with: findit savespss

The homepage http://www.radyakin.org/transfer/savespss/savespss.htm continues to work, but the program should be installed from the SSC now, not from the beta location.

Solution 5 - R

I am not familiar with the current state of R programs regarding their ability to read other file formats, but if someone doesn't have Stata installed on their computer and R cannot read a specific version of Stata's dta files, Pandas in Python can now do the vast majority of such conversions.

Basically, the data from the dta file are first loaded using the pandas.read_stata function. As of version 0.23.0, the supported encoding and formats can be found in a related answer of mine.

Then one can either save the data as a csv file and import them using standard R functions, or instead use the pandas.DataFrame.to_feather function, which exports the data using a serialization format built on Apache Arrow. The latter has extensive support in R as it was conceived to promote interoperability with Pandas.

Solution 6 - R

I had the same problem. Tried read.dta13, read.dta but nothing worked. Then tried the easiest and least expected: MS Excel! It opened marvelously. I saved it as a .csv and used in R!!! Hope this helps!!!!

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionkolonelView Question on Stackoverflow
Solution 1 - RsjewoView Answer on Stackoverflow
Solution 2 - RyoyoyoyosefView Answer on Stackoverflow
Solution 3 - RRoberto FerrerView Answer on Stackoverflow
Solution 4 - RSergiy RadyakinView Answer on Stackoverflow
Solution 5 - Ruser8682794View Answer on Stackoverflow
Solution 6 - RSupriya KulkarniView Answer on Stackoverflow