Package to read and write all Stata file formats (version 17 and older) into a R data.frame. The dta file format versions 102 to 121 are supported (including dtas files).
The function read.dta
from the foreign package imports
only dta files from Stata versions <= 12. Due to the different
structure and features of dta 117 files, we wrote a new file reader in
Rcpp.
Additionally the package supports many features of the Stata dta
format like label sets in different languages (?set.lang
)
or business calendars (?as.caldays
).
The package is hosted on CRAN.
install.packages("readstata13")
library(readstata13)
<- read.dta13("path to file.dta")
dat save.dta13(dat, file="newfile.dta")
To install the current release from github you need the platform specific build tools. On Windows a current installation of Rtools is necessary, while OS X users need to install Xcode.
# install.packages("remotes")
::install_github("sjewo/readstata13", ref="0.11") remotes
To install the current development version from github:
::install_github("sjewo/readstata13", ref="testing") remotes
Version | Changes |
---|---|
0.11.0 | Initial support for Stata 18. Import .dtas
files (Stata framesets) via read.dtas() . Alias variables
are currently ignored with a warning. |
The select.cols argument
accepts either variable names or column indices. |
|
Fix compilation on musl and other non-glibc based systems. | |
Add package alias to readstata13.Rd |
See News for the full changelog.
Most attributes of the resulting data.frame are largely similar to
the data.frames produced by foreign
. Since newer Stata
files require some additional attributes, the results of
all.equal()
and identical()
will be
FALSE
for data.frames read by
foreign::read.dta
and read.dta13()
. Otherwise,
the data.frames produced by both functions are identical.
library(foreign)
library(readstata13)
# with factors
<- read.dta("http://www.stata-press.com/data/r12/auto.dta")
r12 <- read.dta13("http://www.stata-press.com/data/r13/auto.dta")
r13
all.equal(r12, r13, check.attributes = FALSE)
# without factors
<- read.dta("http://www.stata-press.com/data/r12/auto.dta",
r12 convert.factors = FALSE)
<- read.dta13("http://www.stata-press.com/data/r13/auto.dta",
r13 convert.factors = FALSE)
all.equal(r12, r13, check.attributes = FALSE)
Marvin Garbuszus (JanMarvin) and Sebastian Jeworutzki (sjewo)
GPL2